建立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;
}
并且在读取套接字时可以获取更多数据。我知道这一点,因为我一直在使用流来处理出价数据,比如电影、绘制大路线或应该在即将到来时显示的东西。