如何在Android中删除致命异常:AsyncTask

如何在Android中删除致命异常:AsyncTask,第1张

如何在Android中删除致命异常:AsyncTask

原因是,你只能消耗

Content
Entity
一次。

您在这里做了两次(可能不知道)

Reader reader = new InputStreamReader(response.getEntity().getContent());

和这里

response.getEntity().writeTo(out);

我知道这听起来有些怪异,但实际上writeTo()函数将从实体获取内容并将其写入

OutputStream
。您可以在此处的文档中看到它

您可以使用的另一种解决方法是将其转换为字符串,然后让GSON处理

@Overrideprotected String doInBackground(String... uri) {    HttpClient httpclient = new DefaultHttpClient();    HttpResponse response;    String responseString = null;    try {        response = httpclient.execute(new HttpGet(uri[0]));        StatusLine statusLine = response.getStatusLine();        if(statusLine.getStatusCode() == HttpStatus.SC_OK){ responseString = EntityUtils.toString(response.getEntity()); // content will be consume only once Gson gson = new Gson(); Holder response1 = gson.fromJson(responseString, Holder.class);        } else{ //Closes the connection. response.getEntity().getContent().close(); throw new IOException(statusLine.getReasonPhrase());        }    } catch (ClientProtocolException e) {        //TODO Handle problems..        progressDialog.hide();    } catch (IOException e) {        //TODO Handle problems..        progressDialog.hide();    }    return responseString;}

希望我的回答能对您有所帮助!



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5427201.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-11
下一篇2022-12-11

发表评论

登录后才能评论

评论列表(0条)

    保存