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();
您可以改为使用我的代码片段,它对我来说工作正常。现在您可以将 son 变量用于您的 private void parseJSON(String json) 函数。
TA贡献1790条经验 获得超9个赞
您正在将字符串附加到StringBuilder sb = new StringBuilder();
. 你必须像这样调用,parseJSON(sb.toString());
因为String json
只是一个指针不包含你想要的实际字符串。
添加回答
举报