Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to measure request and response time of server?

I am using asynctask and json parsing for getting response from server,How can i measure request and response time,following is code of my web service,can any one help me with this?............................

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

}

like image 316
fazilpuriasa Avatar asked Feb 24 '15 06:02

fazilpuriasa


1 Answers

Please see below code you will get an idea about how to do this.

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

This code would measure the time from when you begin writing out your request to when you finish receiving the response, and display the result .

like image 192
Born To Win Avatar answered Sep 28 '22 07:09

Born To Win