c httpclient抓取网页(cookies设置.UseCookies=(默认为true),默认的会自己带上cookies)

优采云 发布时间: 2021-10-30 09:05

  c httpclient抓取网页(cookies设置.UseCookies=(默认为true),默认的会自己带上cookies)

  通过设置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("email", "xj"),

                new KeyValuePair("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网站

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线