我試圖執行API並嘗試獲得json
響應,但我得到"Disallowed Key Characters"
的錯誤bf.readLine()
。json輸出中的「不允許的關鍵字符」錯誤
以下是我正在嘗試使用的代碼。但是當我在web瀏覽器中運行請求url時,我得到的響應沒有問題。但是通過使用java代碼,我無法提取數據。請幫助
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();
你沒有爲'InputStreamReader'指定一個字符集。 JSON通常使用UTF-8。另外,JSON不是面向行的,所以'readLine()'可能不是正確的方法。考慮使用'Gson.fromJson()'代替'Reader'作爲輸入。 –
看看這個>> https://stackoverflow.com/questions/4964640/reading-inputstream-as-utf-8 –