HttpClient 4.5.12 接口重定向解决方法
遇到接口提供方,使用了代理,每次请求都会重定向。而默认获取请求是直接返回的,即返回了 302 内容,无法实际调用接口。
核对了一下问题,接口方提出添加允许跟随重定向:
request.setFollowRedirects(true);
但我这边添加的时候报错,没有这个方法。百度提示 HttpClient 4.x 不需要手动设置是否跟踪重定向,它会自动处理重定向。
以下为生效配置修改项:
RequestConfig.Builder configBuilder = RequestConfig.custom();
// 设置连接超时
configBuilder.setConnectTimeout(MAX_TIMEOUT);
// 设置读取超时
configBuilder.setSocketTimeout(MAX_TIMEOUT);
// 设置从连接池获取连接实例的超时
configBuilder.setConnectionRequestTimeout(MAX_TIMEOUT);
// 设置是否允许重定向
configBuilder.setRedirectsEnabled(followRedirects);
// 允许循环重定向
// 设置最大重定向次数
configBuilder.setCircularRedirectsAllowed(true).setMaxRedirects(5);
...
httpBuilder.setRedirectStrategy(new LaxRedirectStrategy());
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。