J'essaie d'exécuter l'API et j'essaie d'obtenir la réponse json
, mais j'obtiens l'erreur "Disallowed Key Characters"
pour bf.readLine()
.Erreur de "caractères clés non autorisés" dans la sortie json
Voici le code que j'essaie d'utiliser. Mais quand je cours l'URL de demande dans le navigateur Web j'obtiens la réponse sans issue. Mais en employant le code de java je ne peux pas extraire des données. S'il vous plaît aider
String uri = "http://192.168.77.6/Ivr_ABN_API/?id?id="
+ mobile;
URL url;
Gson json = null;
try {
url = new URL(uri);
json = new Gson();
HttpURLConnection connection;
access_token = db.getAccessTokenFromDB();
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
System.out.println("URL:" + uri);
connection.setRequestProperty("Content-Type", "application/json");
int status = connection.getResponseCode();
resCode = Integer.toString(status);
InputStream in = connection.getInputStream();
BufferedReader bf = new BufferedReader(
new InputStreamReader(in));
System.out.println("bf.readLine() - "+bf.readLine());
while ((output = bf.readLine()) != null) {
JSONObject obj = new JSONObject(output);
System.out.println("output is "+output);
resCode = obj.getString("resCode");
resDesc = obj.getString("COUNT");
}
connection.disconnect();
Vous ne spécifiez pas de jeu de caractères pour 'InputStreamReader'. JSON utilise généralement UTF-8. De plus, JSON n'est pas orienté ligne, donc 'readLine()' n'est probablement pas la bonne approche à utiliser quand même. Pensez à utiliser 'Gson.fromJson()' à la place, ce qui prend un 'Reader' en entrée. –
jetez un oeil à ceci >> https://stackoverflow.com/questions/4964640/reading-inputstream-as-utf-8 –