[我们的服务器在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();
}
}
看起来好像所请求的URL导致某些“重定向”。
只是一个想法:也许所请求的URL产生了一些到https的重定向?
确定我会检查所请求的URL以及为什么它返回一些重定向HTTP代码。