HttpClientHandler 和淘宝 cookie的坑

探讨了使用HttpClientHandler在处理淘宝不规范Cookie时遇到的问题。当响应头包含多个且格式不一的Set-Cookie值时,CookieContainer无法正确识别与更新。文章提供了手动管理Cookie的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HttpClientHandler 和淘宝 cookie的坑

handler = new HttpClientHandler()
{
UseCookies =true,
AllowAutoRedirect = true,
Proxy = null,
UseProxy = false,
AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate
};
UseCookies、AllowAutoRedirect两个属性设置为真值时,HttpClient进行HTTP通信, handler的CookieContainer将自动更新服务器响应的Set-Cookie,包括跨域跳转,看起来很方便。但是淘宝一个请求的响应头有多个Set-Cookie值,而且不归范,不是名=值的形式;而是有这样的:
uc1=cookie16=URm48syIJ1yk0MX2J7mAAEhTuw%3D%3D&cookie21=V32FPkk%2FgihF%2FS5nr3O5&cookie15=U%2BGCWk%2F75gdr5Q%3D%3D&existShop=false&pas=0&cookie14=UoTYMbyX6zcquQ%3D%3D&tag=8&lng=zh_CN; Domain=.taobao.com; Path=/,一个cookie有多个等号。这种cookie,CookieContainer是不会识别和更新的。所以还得用httpClient.DefaultRequestHeaders.Add(“Cookie”, cookstr)这样的代码来管理cookie.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值