有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何优化GET请求?

我面临一个与REST服务优化相关的问题。 处理特定数量的请求所需的时间是我可能提供的时间的十倍以上

公共类请求{

String url;
CloseableHttpClient httpClient;
HttpGet request;
HttpResponse result;
String json;

public Request(String URL)
{
    url = URL;
    httpClient = HttpClientBuilder.create().build();
    request = new HttpGet(url);
    request.addHeader("content-type", "application/json");
    try {
    result = httpClient.execute(request);
    json = EntityUtils.toString(result.getEntity(), "UTF-8");
    }
    catch (IOException exception) {
    }
}
你能告诉我,如果有任何修改,我可以提供或是什么图书馆,我可以考虑更快的处理请求?


共 (3) 个答案

  1. # 1 楼答案

    考虑在函数外部创建^ {CD1>}。

    所以httpClient = HttpClientBuilder.create().build();只会发生一次

  2. # 2 楼答案

    如果问题与响应的大小有关,您还可以尝试使用GZIP压缩它,使用一些二进制响应,比如Protobuffers,或者同时使用这两种方法来加速响应。这会让整个过程更快。。。但你需要尝试和比较

    当然,使用Protobuffers可以加快序列化和传输速度。但理解Protobuffer的工作原理,以及在服务器和客户端上实现它需要时间。如果这是你的第一次,你可能会引入一些新的错误。我们毕竟是人类

    关于GZIP,它更简单,但是如果响应太短,GZIP可以使它变大而不是变小。所以,你还需要在这方面投入一些时间

  3. # 3 楼答案

    这可能是一个评论,但我还不能添加评论。除非您的应用程序运行在非常稀缺的资源之上,否则您应该使用rest框架来完成繁重的工作。它的设计是为了尽可能高效和优化

    一个好的轻量级的是OkHttp