Java HttpGet和DefaultHttpClient生命周期,从服务器检索所有数据的步骤是什么?
在进行http连接时,我有点困惑。我想知道从服务器下载的数据是在什么地方完成的,客户端 我有以下代码,标准http java连接代码: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
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循环中,您只是将响应转换为没有连接相关操作的字符串