我正在Java控制台应用程序中使用Apache HttpClient 4.5(具有流畅接口)。我注意到它的默认超时值似乎是无限的,但我必须为发送的请求使用非无限超时值。而且,我希望对所有请求使用相同的超时值。
如何全局设置默认连接超时和套接字超时值,以便我不必在发送请求的代码的每个位置上都设置它们?(请记住我使用流畅接口)
示例: 现在,在我发送请求的代码的每个位置上,我都会做类似以下的事情:(简单示例)
我希望做的是在程序开始时设置默认值。例如:
这样我只需发送这样的请求。
如何全局设置默认连接超时和套接字超时值,以便我不必在发送请求的代码的每个位置上都设置它们?(请记住我使用流畅接口)
示例: 现在,在我发送请求的代码的每个位置上,我都会做类似以下的事情:(简单示例)
HttpResponse response = Request.Get(url)
.connectionTimeout(CONNECTION_TIMEOUT) // <- want to get rid of this
.sessionTimeout(SESSION_TIMEOUT) // <- and this
.execute()
.returnResponse();
我希望做的是在程序开始时设置默认值。例如:
,我希望只需一次设置即可永久保留。
SomeImaginaryConfigClass.setDefaultConnectionTimeout(CONNECTION_TIMEOUT);
SomeImaginaryConfigClass.setDefaultSessionTimeout(SESSION_TIMEOUT);
这样我只需发送这样的请求。
HttpResponse response = Request.Get(url).execute().returnResponse();
在不设置每个调用的超时参数的情况下。
我在网上看到了一些答案,但它们要么是针对旧版本的Apache HttpClient(即不起作用),要么讨论使用构建器或传递配置类或其他过于复杂的方法,超出了我的需求范围。我只想设置默认超时值,没有比这更好的东西。我应该在哪里做这个?