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 ...
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
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();
}
}
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:
http://www.programing-style.com/android/android-api/android-httpurlconnection-get-text/
Recommended Posts