httpclient 版本升级造成报错

本文探讨了从HttpClient 3.1升级到4.3.3版本过程中遇到的问题,特别是在调用API时出现的错误。问题根源在于CookieSpec参数的变化,4.3.3版本取消了STANDARD_STRICT,改用STANDARD。为解决此问题,需要重构调用方法。



最近在项目中由于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 取代,所以原先调用方法只能重新封装一个工具类来调用解决.








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值