0
建立http连接时我有点困惑。我想知道服务器的数据在代码中的哪个位置已经完成了在电话,客户端上的下载?HttpGet和DefaultHttpClient实时循环,在哪一步从服务器检索所有数据?
我有下面的代码,标准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 ((s = buffer.readLine()) != null) {
response += s;
}
我的理解是,连接仍然活着:
while ((s = buffer.readLine()) != null) {
response += s;
}
并且在读取套接字时会出现更多数据。我知道这一点,因为我一直在使用该流来处理出价数据,例如电影,绘制大型路线或应该显示为来的内容。一旦.execute()
被称为执行