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) {
}
}
你能告诉我,如果有任何修改,我可以提供或是什么图书馆,我可以考虑更快的处理请求?
# 1 楼答案
考虑在函数外部创建^ {CD1>}。
所以
httpClient = HttpClientBuilder.create().build();
只会发生一次# 2 楼答案
如果问题与响应的大小有关,您还可以尝试使用GZIP压缩它,使用一些二进制响应,比如Protobuffers,或者同时使用这两种方法来加速响应。这会让整个过程更快。。。但你需要尝试和比较
当然,使用Protobuffers可以加快序列化和传输速度。但理解Protobuffer的工作原理,以及在服务器和客户端上实现它需要时间。如果这是你的第一次,你可能会引入一些新的错误。我们毕竟是人类
关于GZIP,它更简单,但是如果响应太短,GZIP可以使它变大而不是变小。所以,你还需要在这方面投入一些时间
# 3 楼答案
这可能是一个评论,但我还不能添加评论。除非您的应用程序运行在非常稀缺的资源之上,否则您应该使用rest框架来完成繁重的工作。它的设计是为了尽可能高效和优化
一个好的轻量级的是OkHttp