我正在尝试在xml中获取HttpResponse,但我没有得到整个响应,可能的是,如果我循环请求,响应在不同的部分结束,但永远不会满。
我使用相同的代码来请求来自不同网址的内容,但我只遇到一个问题。
以下是AsyncTask的代码:
public class NetworkTask extends AsyncTask<String, Void, HttpResponse> {
private AsyncTaskListener listener;
@Override
protected HttpResponse doInBackground(String... params) {
String link = params[0];
HttpGet request = new HttpGet(link);
AndroidHttpClient client = AndroidHttpClient.newInstance("Android");
try {
HttpResponse httpResponse = client.execute(request).;
return httpResponse;
} catch (IOException e) {
e.printStackTrace();
return null;
} finally {
client.close();
}
}
@Override
protected void onPostExecute(HttpResponse result) {
if (result != null){
try {
String sRes = EntityUtils.toString(result.getEntity());
listener.onNTCompleted(sRes);
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public NetworkTask(AsyncTaskListener listener){
this.listener=listener;
}
}
答案 0 :(得分:0)
我不确定这是否对您有所帮助但是您遇到了问题,因为EntityUtils.toString()
从网络流中读取数据,这不应该在UI线程(onPostExecute)上完成。首先尝试将EntityUtils.toString()
移至doInBackground()
。这可能无助于解决您的问题,但这是正确的做法。