android怎么知道HttpResponse花了多少时间给出响应

时间:2011-06-13 05:23:39

标签: android

我有一个应用程序,我希望每次与互联网连接并从互联网上获取数据时需要花多少时间? 如果需要更多时间,那么我想向用户发出“互联网连接问题”的警告

所以我怎么知道它需要花多少时间。在我给我的应用程序的函数下面,我使用的HttpResponse .plz告诉我如何获得给出响应所需的时间

 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());
            }
        }
    }
}

谢谢。

2 个答案:

答案 0 :(得分:3)

  

..如果需要更多时间,那么我想   警告......

由于您知道应该获得响应的最佳时间,因此在创建连接时不能指定超时。请参阅下面的代码片段,了解如何设置超时。然后捕获超时错误并通知该服务太长时间无法响应。

DefaultHttpClient httpClient = new DefaultHttpClient();
HttpParams params = httpClient.getParams();
HttpConnectionParams.setConnectionTimeout(params, 5000);
HttpConnectionParams.setSoTimeout(params, 5000);

ClientExecutor executor = new ApacheHttpClient4Executor(httpClient);

价:

  1. http://blog.jayway.com/2009/03/17/configuring-timeout-with-apache-httpclient-40/
  2. Http connection timeout on Android not working

答案 1 :(得分:0)

以上答案也已实施......

最简单的逻辑方式是......

1)在一些变量中占用系统时间。

2)在响应之后将系统时间转换为另一个变量。

3)采取差异,你将获得大致的响应时间。