Android-没有从HttpResponse获得完整响应

Android-没有从HttpResponse获得完整响应,android,get,android-asynctask,httpresponse,Android,Get,Android Asynctask,Httpresponse,我试图得到一个xml格式的HttpResponse,但我没有得到完整的响应,值得注意的是,如果我循环请求,响应将以不同的部分结束,但永远不会完整 我使用相同的代码从不同的URL请求内容,但我只在其中一个URL上遇到问题 以下是异步任务的代码: public class NetworkTask extends AsyncTask<String, Void, HttpResponse> { private AsyncTaskListener listener; @Override

我试图得到一个xml格式的HttpResponse,但我没有得到完整的响应,值得注意的是,如果我循环请求,响应将以不同的部分结束,但永远不会完整

我使用相同的代码从不同的URL请求内容,但我只在其中一个URL上遇到问题

以下是异步任务的代码:

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;
 }
}
公共类NetworkTask扩展了AsyncTask{
私有异步任务侦听器;
@凌驾
受保护的HttpResponse doInBackground(字符串…参数){
字符串链接=参数[0];
HttpGet请求=新的HttpGet(链接);
AndroidHttpClient=AndroidHttpClient.newInstance(“Android”);
试一试{
HttpResponse HttpResponse=client.execute(请求)。;
返回httpResponse;
}捕获(IOE异常){
e、 printStackTrace();
返回null;
}最后{
client.close();
}
}
@凌驾
受保护的void onPostExecute(HttpResponse结果){
如果(结果!=null){
试一试{
字符串sRes=EntityUtils.toString(result.getEntity());
侦听器。onNTCompleted(sRes);
}捕获(非法状态){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
}
公用网络任务(AsyncTaskListener侦听器){
this.listener=listener;
}
}

我不确定这是否对您有帮助,但您遇到了一个问题,因为
EntityUtils.toString()
从网络流读取数据,这不应该在UI线程(onPostExecute)上执行。首先尝试将
EntityUtils.toString()
移动到
doInBackground()
。这可能无助于解决您的问题,但这是正确的做法。

谢谢,您是对的,但这并不能解决问题。您解决了您的问题吗