使用spring ReflectionUtils从HttpComponentsClientHttpRequestFactory检索超时值

时间:2019-03-17 02:23:20

标签: java spring reflection httpclient

我在我的代码中使用org.springframework.http.client.HttpComponentsClientHttpRequestFactory,并且我想使用Reflection(org.springframework.util.ReflectionUtils)从该对象中检索一些超时值,例如ConnectTimeout。对于如何从此对象检索此字段,我不太清楚。

我尝试了类似的操作:<img data-src="img/arrow-down.png" class="arrow lazyload" data-expand="-20" alt="Baja para ver" title="Baja para ver">

但是,该值返回为空。

1 个答案:

答案 0 :(得分:0)

超时值是HttpComponentsClientHttpRequestFactory的RequestConfig字段的一部分。以下是访问该文件的代码。

HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
factory.setConnectTimeout(1000);

Field requestConfigField = ReflectionUtils.findField(
   HttpComponentsClientHttpRequestFactory.class, "requestConfig", RequestConfig.class);
requestConfigField.setAccessible(true);
RequestConfig requestConfig = (RequestConfig) ReflectionUtils.getField(requestConfigField, factory);

System.out.println("Connect timeoout = " + requestConfig.getConnectTimeout());