当前位置:  开发笔记 > 编程语言 > 正文

如何通过Socket找到HTTP请求的响应时间

如何解决《如何通过Socket找到HTTP请求的响应时间》经验,为你挑选了4个好方法。

我正在使用连接到服务器的Java套接字.如果我发送HEADER http请求,如何测量服务器的响应时间?我必须使用提供的java计时器,还是有更简单的方法?

我正在寻找一个简短的答案,我不想使用其他协议等.显然我不想要一个将我的应用程序与特定操作系统联系起来的解决方案.请人,仅限IN-CODE解决方案.



1> A B..:

curl -s -w "%{time_total}\n" -o /dev/null http://server:3000



2> hoyhoy..:

您可以在命令行上使用时间和卷曲和时间.curl的-I参数指示它仅请求标头.

time curl -I 'http://server:3000'



3> Dave L...:

我会说这取决于您尝试测量的确切间隔,从您发送的请求的最后一个字节到您收到的响应的第一个字节的时间量?或者直到收到整个回复?或者您是否只想测量服务器端的时间?

如果您只是尝试测量服务器端处理时间,那么您将很难计算出您的请求到达的网络传输所花费的时间以及返回的响应.否则,由于您通过套接字自行管理请求,您可以通过检查系统时钟和计算差异来测量任意两个时刻之间的经过时间.例如:

public void sendHttpRequest(byte[] requestData, Socket connection) {
    long startTime = System.currentTimeMillis();
    writeYourRequestData(connection.getOutputStream(), requestData);
    byte[] responseData = readYourResponseData(connection.getInputStream());
    long elapsedTime = System.currentTimeMillis() - startTime;
    System.out.println("Total elapsed http request/response time in milliseconds: " + elapsedTime);
}

此代码将测量从开始写入请求到完成接收响应的时间,并打印结果(假设您已实现特定的读/写方法).



4> Dave Cheney..:

像这样的东西可能会成功

import java.io.IOException;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.URIException;
import org.apache.commons.httpclient.methods.HeadMethod;
import org.apache.commons.lang.time.StopWatch;
//import org.apache.commons.lang3.time.StopWatch

public class Main {

    public static void main(String[] args) throws URIException {
        StopWatch watch = new StopWatch();
        HttpClient client = new HttpClient();
        HttpMethod method = new HeadMethod("http://stackoverflow.com/");

        try {
            watch.start();
            client.executeMethod(method);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            watch.stop();
        }

        System.out.println(String.format("%s %s %d: %s", method.getName(), method.getURI(), method.getStatusCode(), watch.toString()));

    }
}
HEAD http://stackoverflow.com/ 200: 0:00:00.404

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有