栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在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;}

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/451675.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号