3 回答

TA貢獻1842條經驗 獲得超21個贊
我建議使用適當的 http 庫來處理像 Volley 或 Retrofit 這樣的請求...JSON 和錯誤處理也是內置的,因此可以為此目的完全刪除 AsyncTask
但是你所擁有的很好,只是json
在 while 循環之后不應該使用,它只是 http 響應的最后一行,而不是完整的 json(假設有多行)
您真的應該考慮解析 中的結果onPostExecute
,甚至可能讓 parse 方法返回一個實際對象,或顯示到 UI

TA貢獻1847條經驗 獲得超7個贊
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
String json = sb.toString();
您可以改為使用我的代碼片段,它對我來說工作正?!,F在您可以將 son 變量用于您的 private void parseJSON(String json) 函數。

TA貢獻1790條經驗 獲得超9個贊
您正在將字符串附加到StringBuilder sb = new StringBuilder();
. 你必須像這樣調用,parseJSON(sb.toString());
因為String json
只是一個指針不包含你想要的實際字符串。
添加回答
舉報