C# HttpClient设置cookies
电脑版发表于:2020/5/22 9:04
通过设置handler.UseCookies=true(默认为true),默认的会自己带上cookies
var handler = new HttpClientHandler() { UseCookies = true }; var client = new HttpClient(handler);// { BaseAddress = baseAddress }; client.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20200101 Firefox/57.0"); client.DefaultRequestHeaders.Add("Connection", "Keep-Alive"); client.DefaultRequestHeaders.Add("Keep-Alive", "timeout=900"); var content = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("email", "xj"), new KeyValuePair<string, string>("password", "a"), }); var result = await client.PostAsync("https://www.xxjj.com/login/login", content); result.EnsureSuccessStatusCode();
这种情况post请求登陆成功后,重定向到别的页面,也会自动带上cookies。如果把handler.UseCookies设置为false,登陆后重定向的话不会自动带上cookies,则又会跳转到登陆页面。
这种方法的使用场景:抓取需要登陆后才能看到的网页数据,不需要设置任何cookies,httpclient会自动把登陆后的cookies放置到后面的请求中。
但是也注意,如果仅仅是直接发起请求,它是不会把发起项目本身的cookie信息传递过去的,它带的是你请求网站的cookie
HttpClient手动设置cookie参考
https://www.tnblog.net/xiuxin3/article/details/3832