android - 如何测量服务器的请求和响应时间?

标签 android json httprequest httpresponse

我正在使用 asynctask 和 json 解析从服务器获取响应,我如何测量请求和响应时间,以下是我的 web 服务的代码,有人可以帮助我吗?......... ...................

public class JSONParser {
  static InputStream is = null;
  static JSONObject jObj = null;
  static String json = "";

  // constructor
  public JSONParser() {
  }

  // function get json from url
    // by making HTTP POST or GET method
  public JSONObject makeHttpRequest(String url, String method,
          List<NameValuePair> params) {

      // Making HTTP request
      try {
        // check for request method
          if(method.equals("POST")){
              DefaultHttpClient httpClient = new DefaultHttpClient();
              HttpPost httpPost = new HttpPost(url);
              httpPost.setEntity(new UrlEncodedFormEntity(params));
              long startTime = System.currentTimeMillis();
              HttpResponse httpResponse = httpClient.execute(httpPost);
              HttpEntity httpEntity = httpResponse.getEntity();
             is = httpEntity.getContent();
             long elapsedTime = System.currentTimeMillis() - startTime;
                System.out.println("Total elapsed http request/response time in milliseconds: " + elapsedTime);
          } else if(method.equals("GET")) {
              //request method is GET
              DefaultHttpClient httpClient = new DefaultHttpClient();
              String paramString = URLEncodedUtils.format(params, "utf-8");
              url += "?" + paramString;
              HttpGet httpGet = new HttpGet(url);
              long startTime = System.currentTimeMillis();
              HttpResponse httpResponse = httpClient.execute(httpGet);
              HttpEntity httpEntity = httpResponse.getEntity();
              is = httpEntity.getContent();
              long elapsedTime = System.currentTimeMillis() - startTime;
                System.out.println("Total elapsed http request/response time in milliseconds: " + elapsedTime);
          }
      }catch (UnsupportedEncodingException e) {
          e.printStackTrace();
      }catch (ClientProtocolException e) {
          e.printStackTrace ();
      }catch (IOException e) {
          e.printStackTrace();
      }

      try {
          BufferedReader reader = new BufferedReader(new InputStreamReader(
          is, "iso-8859-1"),8);
          StringBuilder sb = new StringBuilder();
          String line = null;
          while ((line = reader.readLine()) != null) {
          sb.append(line + "\n");
          }
          is.close();
          json = sb.toString();
          Log.d("Request attempt","JSON >>>" +  json.toString());
          } catch (Exception e) {
          Log.e("Buffer Error", "Error converting result" + e.toString());
          }
    // try parse the string to a JSON object
      try { jObj = new JSONObject(json);
      } catch (JSONException e) {
          Log.e("JSON PArser", "Error Parsing data" + e.toString());
      }
      return jObj;
  }

最佳答案

请看下面的代码,您将了解如何执行此操作。

      long startTime = System.currentTimeMillis();

         //Write this above before your httprequest 

              HttpResponse httpResponse = httpClient.execute(httpGet);
              HttpEntity httpEntity = httpResponse.getEntity();
              is = httpEntity.getContent();    

        //After you get response  

        long elapsedTime = System.currentTimeMillis() - startTime;
        System.out.println("Total elapsed http request/response time in milliseconds: " + elapsedTime);

此代码将测量从您开始写出请求到完成收到响应并显示结果的时间。

关于android - 如何测量服务器的请求和响应时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28689286/

相关文章:

android - 删除未使用的资源需要打开未使用的代码收缩

authentication - Google Apps脚本通过HTTP请求登录网站

java - 如何修复 org.json.JSONException : on Volley?

android - 两次通过 UI 布局 : Why?

android - 我需要单独的 Eclipse 来进行 android ADT 开发吗?

java - 在没有扩展 Activity 类的类中调用另一个 Activity

javascript - 在 PHP 中使用 JSON 时在字符串之前添加字符串长度

json - Bing 搜索 API 的基本身份验证

json - 如何在 json 响应 blob 中获取嵌套列表项值

java - 如何使用 AsyncTask 读取 HTTP 响应?