/**
* 反射设置设置OkHttpClient的callTimeout
*/
private void setOkHttpClientCallTimeoutByReFlect() {
try {
OkHttpClient httpClient = getApiClient().getHttpClient();
Field callTimeoutField = OkHttpClient.class.getDeclaredField("connectTimeout");
Field readTimeoutField = OkHttpClient.class.getDeclaredField("readTimeout");
Field writeTimeoutField = OkHttpClient.class.getDeclaredField("writeTimeout");
Field modifiersField = Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
modifiersField.setInt(callTimeoutField, callTimeoutField.getModifiers() & ~Modifier.FINAL);
callTimeoutField.setAccessible(true);
readTimeoutField.setAccessible(true);
writeTimeoutField.setAccessible(true);
callTimeoutField.set(httpClient, 5 * 60);
readTimeoutField.set(httpClient, 5 * 60);
writeTimeoutField.set(httpClient, 5 * 60);
log.info("连接超时时间修改为:" + httpClient.connectTimeoutMillis());
log.info("读取超时时间修改为:" + httpClient.readTimeoutMillis());
log.info("写超时时间修改为:" + httpClient.writeTimeoutMillis());
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
}
反射设置设置OkHttpClient的超时时间
最新推荐文章于 2024-06-12 12:14:25 发布