OkHttpClient请求有时在Spring Boot应用程序中的AWS上意外失败

问题描述 投票:0回答:1

[我们的服务器在AWS的不同区域中运行,并且有时它们会相互发出GET请求以检查其状态。我们还拥有外部监控服务,可检查相同的呼叫。

有时(经常),我们收到Http 3XX响应,但是从日志和其他监视服务中我们都知道所有服务器都运行良好。对于同一网络上的服务器,我们也看到了类似的行为。

我想知道我们的http客户端配置不正确还是某处存在错误。请参阅以下代码,了解我们用于发送请求的服务。有什么建议么?我们使用com.squareup.okhttp3版本3.14.2。

(为发布问题而没有更好地找出原因的道歉,只是希望其他人以前曾经历过并找到解决方案。)

import okhttp3.*;

@Service
public class HttpClientService {
    public static final MediaType JSON_MEDIA_TYPE = MediaType.parse("application/json; charset=utf-8");

    private OkHttpClient client = null;
    private long httpClientTimeoutSeconds = 10;

    @PostConstruct
    public void init() {
        this.client = new OkHttpClient.Builder()
                .connectTimeout(httpClientTimeoutSeconds, TimeUnit.SECONDS)
                .retryOnConnectionFailure(true)
                .connectionPool(new ConnectionPool(20, 5, TimeUnit.MINUTES))
                .build();
    }

    public Response get(String url) throws IOException {
        Request.Builder requestBuilder = new Request.Builder()
                .header("accept", "application/json")
                .header("accept-encoding", "gzip, deflate")
                .header("content-type", "application/json");
        Request request = requestBuilder
                .url(url)
                .get()
                .build();
        return client.newCall(request).execute();
    }

}
java amazon-web-services spring-boot okhttp
1个回答
0
投票

看起来好像所请求的URL导致某些“重定向”。

只是一个想法:也许所请求的URL产生了一些到https的重定向?

确定我会检查所请求的URL以及为什么它返回一些重定向HTTP代码。

© www.soinside.com 2019 - 2024. All rights reserved.