我需要在我的代码中添加超时,这是我的代码,但我不知道如何修改此代码来添加超时。
`
@EBean(scope = EBean.Scope.Singleton)
public class KioraRestClient {
public static final String SERVER_HOST = KioraBuildConfig.REST_SERVER_API_URL;
public static final String VERSION_SERVER_HOST = KioraBuildConfig.REST_VERSION_SERVER_API_URL;
@AfterInject
void Initialize() {
try {
turnOffSslChecking();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (KeyManagementException e) {
e.printStackTrace();
}
// this factory needs to be crated here since requires some injected dependencies
ClientHttpRequestFactory keyPairRequestFactory = new KioraHttpRequestFactory(
new ContentAuthUriDecorator(authPreferences)
);
ClientHttpRequestFactory timeoutFactory = new SimpleTimeoutRequestFactory();
//TODO: Extract common interface for the controllers
LicenseController.getRestTemplate().setRequestFactory(keyPairRequestFactory);
UserController.getRestTemplate().setRequestFactory(keyPairRequestFactory);
ContentController.getRestTemplate().setRequestFactory(keyPairRequestFactory);
VersionController.getRestTemplate().setRequestFactory(timeoutFactory);
RootIPController.getRestTemplate().setRequestFactory(keyPairRequestFactory);
PurchaseController.getRestTemplate().setRequestFactory(keyPairRequestFactory);
HotspotController.getRestTemplate().setRequestFactory(keyPairRequestFactory);`
我试着像这样添加超时,但这个20秒的超时似乎没有效果。
HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory();
httpRequestFactory.setConnectTimeout(20 * 1000);
PurchaseController.getRestTemplate().setRequestFactory(httpRequestFactory);
HotspotController.getRestTemplate().setRequestFactory(httpRequestFactory);`
发布于 2016-07-01 07:39:12
您仅设置连接超时,而不设置读取超时。connect timeout定义在放弃尝试连接之前等待多长时间。但是,读取超时定义了等待响应的时间。
以同样的方式设置读取超时,您将能够看到它生效
httpRequestFactory.setReadTimeout(20 * 1000);https://stackoverflow.com/questions/37568050
复制相似问题