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.
HttpClientHandler 和淘宝 cookie的坑
最新推荐文章于 2026-04-23 03:02:26 发布
探讨了使用HttpClientHandler在处理淘宝不规范Cookie时遇到的问题。当响应头包含多个且格式不一的Set-Cookie值时,CookieContainer无法正确识别与更新。文章提供了手动管理Cookie的方法。

4142

被折叠的 条评论
为什么被折叠?



