Packen Sie die API-Antwort (Java)

Einführung

Vor kurzem war es schwierig, das Ergebnis in den API-Test zu kopieren, einzufügen und mit 〇 zu markieren, also habe ich es ein wenig ...

Dieses Mal schreibe ich die URL in eine txt-Datei, rufe sie einfach auf, packe sie in eine Liste und schreibe sie in eine Datei. Es fühlt sich an, als ob Sie sich nur bewegen, also denke ich, dass es viel Verschwendung ist, aber bitte schließen Sie Ihre Augen: Stirnrunzeln2:

Wenn Sie einen Apitest-Ordner direkt unter C erstellen, eine txt-Datei darin ablegen und ausführen, sollten Sie das Ausführungsergebnis erhalten ...

txt-Datei

apiTest.txt


//Derjenige, der die Postleitzahl der Präfektur Hyogo nennt
https://zip-cloud.appspot.com/api/search?zipcode=6580083
https://zip-cloud.appspot.com/api/search?zipcode=6580026
https://zip-cloud.appspot.com/api/search?zipcode=6580025
https://zip-cloud.appspot.com/api/search?zipcode=6580082
https://zip-cloud.appspot.com/api/search?zipcode=6580024

Quellcode

ApiTest.java


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

public class ApiTest {
	public static void main(String[] args) throws InterruptedException {
			//Pfad zu dem Ordner, der die API-Ausführungs-URL enthält
			final String filePath = "C:\\apitest\\";

			//apiURL Datei bereits vorbereitet
			List<String> apiUrl = new ArrayList<>();

			//Speichert API-Ergebnisse.
			List<String> apiResult = new ArrayList<>();


			//Dateipfad für lokal
	 		File file = new File(filePath);

			try {
				if (file.isDirectory()) {
					String[] fileList = file.list();
					//Lesen Sie vorerst alle Dateien im Ordner, damit Sie mit dem Dateinamen str verschiedene Dinge tun können
					for(String str:fileList) {
						try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath + str)))) {
							//Eine Zeile der Zeichenfolge-> line
							String line;
							while ((line = reader.readLine()) != null) {
								apiUrl.add(line);
							}
						}
					}
				}
			}catch(Exception e) {
				e.printStackTrace();
			}
			for(int i=0;i < apiUrl.size();i++) {
				if(apiUrl.get(i) == null) {
				//Wenn keine Ausführungs-URL vorhanden ist
					apiResult.add("");
				}else {
					apiResult.add(callGet(apiUrl.get(i)));
				}
			}
			//Exportieren Sie die Ergebnisse in eine Textdatei
			try(FileWriter fileWrite = new FileWriter("C:\\apitest\\apiResult.txt");
					PrintWriter pw = new PrintWriter(new BufferedWriter(fileWrite));) {
					//In Datei exportieren
				for(int i=0 ;i<apiResult.size();i++) {
					pw.println(apiResult.get(i));
				}
			}catch(Exception e) {
				e.printStackTrace();
			}
		}



		public static String callGet(String strGetUrl){

			HttpURLConnection con = null;
			StringBuffer result = new StringBuffer();

			try {

				URL url = new URL(strGetUrl);

				con = (HttpURLConnection) url.openConnection();
				//Grundlegendes Authentifizierungsmuster
				//con.setRequestProperty("Authorization", "Basic " + Base64.getEncoder().encodeToString("userName:pass".getBytes()));

				con.setRequestMethod("GET");
				con.connect();

				//HTTP-Antwortcode
				final int status = con.getResponseCode();
				if (status == HttpURLConnection.HTTP_OK) {
					//Erfolgreiche Kommunikation
					//Holen Sie sich den Text
					final InputStream in = con.getInputStream();
					String encoding = con.getContentEncoding();
					if(null == encoding){
						encoding = "UTF-8";
					}
					final InputStreamReader inReader = new InputStreamReader(in, encoding);
					final BufferedReader bufReader = new BufferedReader(inReader);
					String line = null;
					//Lesen Sie den Text Zeile für Zeile
					while((line = bufReader.readLine()) != null) {
						result.append(line);
					}
					bufReader.close();
					inReader.close();
					in.close();
				}else{
					System.out.println(status);
				}

			}catch (Exception e1) {
				e1.printStackTrace();
			} finally {
				if (con != null) {
					//Trennen
					con.disconnect();
				}
			}
			System.out.println("result=" + result.toString());

			return result.toString();
		}

	}

Schließlich

In einigen Fällen gibt es eine grundlegende Authentifizierung, daher habe ich auch das Muster beschrieben. Wenn Sie einen 401-Fehler erhalten, führen Sie normalerweise eine Basisauthentifizierung durch, und zu diesem Zeitpunkt möchte ich den Teil "Standardauthentifizierung" schreiben.

Das war's: entspannt:

Referenz

http://www.programing-style.com/android/android-api/android-httpurlconnection-get-text/

Recommended Posts

Packen Sie die API-Antwort (Java)
Java Stream API
[Java] Stream API / Map
Fehlerbehebung bei der Docker-Client Java API
Zabbix API in Java
Java Stream API Spickzettel
Java Stream API in 5 Minuten
[Java] Stream API - Stream-Beendigungsverarbeitung
[Java] Stream API - Stream Zwischenverarbeitung
[Java] Einführung in die Stream-API
Java Basic Learning Content 8 (Java-API)
[Java] Stream API Zwischenoperation
Neueste Generierung von Java-API-Spezifikationen
[Java] "T" ist in der API-Antwort im Datumstyp JSON enthalten
[java8] Um die Stream-API zu verstehen
Exportieren Sie ein Problem mithilfe der Java-API von JIRA
[Einführung in Java] Informationen zur Stream-API
Java HTTP Client API-Zeitlimiteinstellung
Generieren Sie die CloudStack-API-URL in Java
Java
Treffen Sie Zaims API (OAuth 1.0) in Java
Ich habe versucht, die Java8 Stream API zu verwenden
Analysieren der COTOHA-API-Syntaxanalyse in Java
Java
Rufen Sie die Java-API von TensorFlow von Scala aus auf
Java 8 ~ Stream API ~ startet jetzt
JPA (Java Persistence API) in Eclipse
Implementieren Sie API Gateway Lambda Authorizer in Java Lambda
Datenverarbeitung mit der Stream-API von Java 8
Studieren Sie Java 8 (Datums-API im Paket java.time)
Rufen Sie die GitHub-API über Javas Socket-API Teil2 auf
API-Integration von Java mit Jersey Client
Versuchen Sie es mit der Stream-API in Java
Rufen Sie die Windows-Benachrichtigungs-API in Java auf
Heutzutage Java Lambda Expressions und Stream API
[Mark Logic] CRUD + α von "Java Client API"
Rufen Sie die Salesforce REST-API von Java aus auf
Versuchen Sie es mit der JSON-Format-API in Java
Probieren Sie verschiedene Java Stream API-Methoden aus (jetzt)
Java 8 startet jetzt ~ Datums- und Uhrzeit-API ~
Die Java EE Security API ist da!
Beim Aufrufen der API mit Java tritt eine javax.net.ssl.SSLHandshakeException auf
[Java] Neue Spezifikation Implementierung der Yahoo! -Produktsuch-API