最近在项目中由于VISA 接口升级影响, SA 将 httpclient 版本从3.1 升级到4.3.3 ,但在依赖的子项目中开发过程中虽然能起起来,但是调用其他 API却报错:
但是其他项目组使用4.3.3 很久都没出现问题,我们将问题定位接口异常或者版本升级异常.但在测试时发现接口在回归3.1版本时一切正常,所以我们将问题定位到升级出现了问题,最后排查的出的结果是4.3.3参数变更导致的:
3.1的默认参数:
static{
defaultRequestConfig = RequestConfig.custom().setCookieSpec(<u>CookieSpecs.STANDARD_STRICT</u>).build();
//设置默认的配置
httpClient= HttpClients.custom().setDefaultRequestConfig(defaultRequestConfig).build();
}
4.3.3的参数:
static{
defaultRequestConfig = RequestConfig.custom().setCookieSpec(<u>CookieSpecs.STANDARD</u>).build();
//设置默认的配置
httpClient= HttpClients.custom().setDefaultRequestConfig(defaultRequestConfig).build();
}
结论: 3.1中的 CookieSpecs.STANDARD_STRICT 在4.3.3中直接取消,由 CookieSpecs.STANDARD 取代,所以原先调用方法只能重新封装一个工具类来调用解决.