android如何知道HttpResponse需要多少时间才能给出响应
我有一个应用程序,我想找到每次它连接到互联网和获取数据从互联网上需要多少时间? 如果需要更多时间,我想提醒用户“互联网连接有问题” 因此,我如何知道它将花费多少时间,在我给出的应用程序函数下面,我使用了android如何知道HttpResponse需要多少时间才能给出响应,android,Android,我有一个应用程序,我想找到每次它连接到互联网和获取数据从互联网上需要多少时间? 如果需要更多时间,我想提醒用户“互联网连接有问题” 因此,我如何知道它将花费多少时间,在我给出的应用程序函数下面,我使用了HttpResponse。请告诉我如何获得给出响应所需的时间 String page = executeHttpGet("http://192.168.1.109/temp/android.php"); private String executeHttpGet(String URL) th
HttpResponse
。请告诉我如何获得给出响应所需的时间
String page = executeHttpGet("http://192.168.1.109/temp/android.php");
private String executeHttpGet(String URL) throws Exception {
BufferedReader bufferedReader = null;
try {
HttpClient client = new DefaultHttpClient();
client.getParams().setParameter(CoreProtocolPNames.USER_AGENT,
"android");
HttpGet request = new HttpGet();
request.setHeader("Content-Type", "text/plain; charset=utf-8");
request.setURI(new URI(URL));
HttpResponse response = client.execute(request);
bufferedReader = new BufferedReader(new InputStreamReader(response
.getEntity().getContent()));
StringBuffer stringBuffer = new StringBuffer("");
String line = "";
String NL = System.getProperty("line.separator");
while ((line = bufferedReader.readLine()) != null) {
stringBuffer.append(line + NL);
System.out.print(stringBuffer);
}
bufferedReader.close();
page = stringBuffer.toString();
System.out.println(page + "page");
return page;
} finally {
if (bufferedReader != null) {
try {
bufferedReader.close();
} catch (IOException e) {
Log.d("BBB", e.toString());
}
}
}
}
多谢各位
…如果需要更多的时间,那么我想
警告
既然您知道应该得到响应的最佳时间,为什么不在创建连接时指定超时呢。有关如何设置超时,请参阅下面的代码片段。然后捕获超时错误并通知服务太长,无法响应
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpParams params = httpClient.getParams();
HttpConnectionParams.setConnectionTimeout(params, 5000);
HttpConnectionParams.setSoTimeout(params, 5000);
ClientExecutor executor = new ApacheHttpClient4Executor(httpClient);
参考:
以上答案也被实现了 最简单的逻辑方法是 1) 在某个变量中计算系统时间 2) 响应后,在另一个变量中获取系统时间
3) 取差值,您将获得大致的响应时间。您应该在http请求中设置响应时间。