Emballez la réponse de l'API (java)

introduction

Récemment, il était difficile de copier et coller le résultat dans le test de l'API et de le marquer avec 〇, alors je l'ai fait un peu ...

Cette fois, j'écris l'URL dans un fichier txt, il suffit de l'appeler, de la mettre dans une liste et de l'écrire dans un fichier. Vous avez l'impression de bouger, donc je pense que c'est beaucoup de gaspillage, mais fermez les yeux s'il vous plaît: froncer les sourcils2:

Si vous créez un dossier apitest directement sous C, mettez un fichier txt dedans et exécutez-le, vous devriez obtenir le résultat de l'exécution ...

fichier txt

apiTest.txt


//Celui qui appelle le code postal de la préfecture de Hyogo
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

Code source

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 {
			//Chemin vers le dossier contenant l'URL d'exécution de l'API
			final String filePath = "C:\\apitest\\";

			//Fichier apiURL déjà préparé
			List<String> apiUrl = new ArrayList<>();

			//Stocke les résultats de l'API.
			List<String> apiResult = new ArrayList<>();


			//Chemin de fichier pour local
	 		File file = new File(filePath);

			try {
				if (file.isDirectory()) {
					String[] fileList = file.list();
					//Lisez tous les fichiers du dossier pour le moment afin de pouvoir faire différentes choses avec le nom de fichier str
					for(String str:fileList) {
						try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath + str)))) {
							//Une ligne de chaîne de caractères-> 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) {
				//Lorsqu'il n'y a pas d'URL d'exécution
					apiResult.add("");
				}else {
					apiResult.add(callGet(apiUrl.get(i)));
				}
			}
			//Exporter les résultats dans un fichier texte
			try(FileWriter fileWrite = new FileWriter("C:\\apitest\\apiResult.txt");
					PrintWriter pw = new PrintWriter(new BufferedWriter(fileWrite));) {
					//Exporter vers un fichier
				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();
				//Modèle d'authentification de base
				//con.setRequestProperty("Authorization", "Basic " + Base64.getEncoder().encodeToString("userName:pass".getBytes()));

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

				//Code de réponse HTTP
				final int status = con.getResponseCode();
				if (status == HttpURLConnection.HTTP_OK) {
					//Communication réussie
					//Obtenez le texte
					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;
					//Lire le texte ligne par ligne
					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) {
					//Déconnecter
					con.disconnect();
				}
			}
			System.out.println("result=" + result.toString());

			return result.toString();
		}

	}

finalement

Dans certains cas, il existe une authentification de base, j'ai donc également décrit le modèle. Si vous obtenez une erreur 401, vous faites généralement une authentification de base, et à ce moment-là, j'ai l'impression que l'écriture de la partie d'authentification de base fera l'affaire.

Ça y est: détendu:

référence

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

Recommended Posts

Emballez la réponse de l'API (java)
API Java Stream
[Java] API / carte de flux
Dépannage de l'API Java Docker-Client
Pratique de l'API Java8 Stream
API Zabbix en Java
Aide-mémoire de l'API Java Stream
API Java Stream en 5 minutes
[Java] Stream API - Traitement de l'arrêt du flux
[Java] Stream API - Traitement intermédiaire de flux
[Java] Introduction à l'API Stream
Contenu d'apprentissage de base Java 8 (API Java)
[Java] Opération intermédiaire de l'API Stream
Génération récente de spécification d'API Java
[Java] "T" est inclus dans le type de date JSON dans la réponse de l'API
[java8] Pour comprendre l'API Stream
Exporter un problème à l'aide de l'API Java de JIRA
[Introduction à Java] À propos de l'API Stream
Paramètre de délai d'expiration de l'API du client HTTP Java
Générer l'URL de l'API CloudStack en Java
Java
Hit l'API de Zaim (OAuth 1.0) en Java
J'ai essayé d'utiliser l'API Java8 Stream
Analyser l'analyse syntaxique de l'API COTOHA en Java
Java
Appelez l'API Java de TensorFlow depuis Scala
Java 8 ~ Stream API ~ pour commencer maintenant
JPA (API de persistance Java) dans Eclipse
Implémenter l'autorisation API Gateway Lambda dans Java Lambda
Traitement des données à l'aide de l'API de flux de Java 8
Étude de Java 8 (API de date dans le package java.time)
Appeler l'API GitHub à partir de l'API Socket de Java, partie 2
Intégration API de Java avec Jersey Client
Essayez d'utiliser l'API Stream en Java
Appelez l'API de notification Windows en Java
De nos jours, les expressions Java Lambda et l'API de flux
[Mark Logic] CRUD + α par "Java Client API"
Accédez à l'API REST Salesforce depuis Java
Essayez d'utiliser l'API au format JSON en Java
Essayez différentes méthodes d'API Java Stream (maintenant)
Java 8 pour démarrer maintenant ~ API de date et d'heure ~
L'API de sécurité Java EE est là!
Lors de l'appel de l'API avec java, javax.net.ssl.SSLHandshakeException se produit
[Java] Nouvelle spécification Implémentation de l'API de recherche de produits Yahoo!