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请求中设置响应时间。