如何衡量服务器的请求和响应时间? [英] How to measure request and response time of server?
本文介绍了如何衡量服务器的请求和响应时间?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用的AsyncTask和JSON解析用于获取服务器的响应,我怎么能衡量的请求和响应时间,以下是我的web服务的code,任何一个可以帮助我?...... .............
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;
}
}
推荐答案
请参见下面的code你会得到关于如何做到这一点的想法。
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
这code将测量距离,当你开始你的要求写出当你完成接收响应的时间,并显示结果。
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 .
这篇关于如何衡量服务器的请求和响应时间?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文