'Get' Java 中的 REST 调用:它什么时候真正执行?
'Get' REST Call in Java: when does it actually execute?
对于这个 'Get' REST 调用,我想知道我是否可以获得 HTTP 请求实际执行时的延迟,仅此而已。我很确定我在调用 'openConnection()' 时不会启动它,因为在那之后我没有为请求 method/property 设置属性,我目前在设置请求之前有我的 startTime method/property 但我不知道我的 HTTP 请求是否执行,直到我从输入流中获得结果。如有任何澄清,我将不胜感激。
try {
URL url = new URL("http://localhost:8080/REST/json/product/get");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
startTime = System.nanoTime();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
BufferedReader br = new BufferedReader(new InputStreamReader((connection.getInputStream())));
endTime = System.nanoTime();
duration = (endTime - startTime);
System.out.println(duration);
String output;
System.out.println("Output from Server ...");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
conn.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
我认为最好将开始时间放在调用 connection.getInputStream()
之前,只有在这条线与服务器建立实际连接之后。
startTime = System.nanoTime();
BufferedReader br = new BufferedReader(new InputStreamReader((connection.getInputStream())));
endTime = System.nanoTime();
下面一行并没有启动连接过程,只是设置了连接的属性(方法,数据类型)
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
更多信息:- HttpURLConnection
对于这个 'Get' REST 调用,我想知道我是否可以获得 HTTP 请求实际执行时的延迟,仅此而已。我很确定我在调用 'openConnection()' 时不会启动它,因为在那之后我没有为请求 method/property 设置属性,我目前在设置请求之前有我的 startTime method/property 但我不知道我的 HTTP 请求是否执行,直到我从输入流中获得结果。如有任何澄清,我将不胜感激。
try {
URL url = new URL("http://localhost:8080/REST/json/product/get");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
startTime = System.nanoTime();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
BufferedReader br = new BufferedReader(new InputStreamReader((connection.getInputStream())));
endTime = System.nanoTime();
duration = (endTime - startTime);
System.out.println(duration);
String output;
System.out.println("Output from Server ...");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
conn.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
我认为最好将开始时间放在调用 connection.getInputStream()
之前,只有在这条线与服务器建立实际连接之后。
startTime = System.nanoTime();
BufferedReader br = new BufferedReader(new InputStreamReader((connection.getInputStream())));
endTime = System.nanoTime();
下面一行并没有启动连接过程,只是设置了连接的属性(方法,数据类型)
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
更多信息:- HttpURLConnection