Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HttpGet和DefaultHttpClient生命周期,从服务器检索所有数据的步骤是什么?_Java_Android_Http Get_Google Http Client - Fatal编程技术网

Java HttpGet和DefaultHttpClient生命周期,从服务器检索所有数据的步骤是什么?

Java HttpGet和DefaultHttpClient生命周期,从服务器检索所有数据的步骤是什么?,java,android,http-get,google-http-client,Java,Android,Http Get,Google Http Client,在进行http连接时,我有点困惑。我想知道从服务器下载的数据是在什么地方完成的,客户端 我有以下代码,标准http java连接代码: DefaultHttpClient client = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(url); try { HttpResponse execute = client.execute(httpGet); Inpu

在进行http连接时,我有点困惑。我想知道从服务器下载的数据是在什么地方完成的,客户端

我有以下代码,标准http java连接代码:

DefaultHttpClient client = new DefaultHttpClient();
        HttpGet httpGet = new HttpGet(url);
        try {
          HttpResponse execute = client.execute(httpGet);
          InputStream content = execute.getEntity().getContent();

          BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
          String s = "";
          while ((s = buffer.readLine()) != null) {
            response += s;
          }

        } catch (Exception e) {
          e.printStackTrace();
        }
      }
因此,问题是在以下情况下实际发生了什么:

HttpResponse execute = client.execute(httpGet);
InputStream content = execute.getEntity().getContent();
所有的服务器数据都是在这里下载的吗?或者,来自服务器的数据仍然会到达while块吗

while ((s = buffer.readLine()) != null) {
  response += s;
}
我的理解是,这种联系在以下情况下仍然存在:

while ((s = buffer.readLine()) != null) {
  response += s;
}

当套接字被读取时,会有更多的数据。我知道这一点,因为我一直在使用流来处理投标数据,如电影、绘制大路线或应该显示的内容。

请求在调用
后执行。
之后,即:

HttpResponse execute = client.execute(httpGet);
在这一点之后,响应将保存在内存中。是的,连接仍处于活动状态,但在连接管理器关闭连接之前不会执行任何请求

在while循环中,您只是将响应转换为没有连接相关操作的字符串