一般有两种办法

第一种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/20100101 Firefox/57.0");
client.DefaultRequestHeaders.Add("Connection", "Keep-Alive");
client.DefaultRequestHeaders.Add("Keep-Alive", "timeout=600");
var content = new FormUrlEncodedContent(new[]{new KeyValuePair<string, string>("email", "xxxx"),new KeyValuePair<string, string>("password", "xxxx"),});
var result = await client.PostAsync("https://www.xxxx.com/cp/login", content);
result.EnsureSuccessStatusCode();

这种情况post请求登陆成功后,重定向到别的页面,也会自动带上cookies。如果把handler.UseCookies设置为false,登陆后重定向的话不会自动带上cookies,则又会跳转到登陆页面。

第二种设置 handler.UseCookies = false时,则需要手动给headers上加入cookies.

var handler = new HttpClientHandler() { UseCookies = false};
var client = new HttpClient(handler);// { BaseAddress = baseAddress };
var message = new HttpRequestMessage(HttpMethod.Get, url);
message.Headers.Add("Cookie", "session_id=7258abbd1544b6c530a9f406d3e600239bd788fb");
var result = await client.SendAsync(message);
result.EnsureSuccessStatusCode();

如果使用场景是:抓取需要登陆后才能看到的网页数据,建议使用第一种,不需要设置任何cookies,httpclient会自动把登陆后的cookies放置到后面的请求中。

转载于:https://www.cnblogs.com/xiaozhu39505/p/8033108.html

C# HttpClient设置cookies的两种办法相关推荐

  1. MSCOMM32控件注册的两种办法

    当我们在VC或者VB或者VS环境下基于MSCOMM控件开发的软件发布后,是不是有种很爽的感觉,可以拿到别人的电脑上运行下你的软件,可是当你移植过去后却发现软件无法点击的动(别笑,我在开发C#软件时就是 ...

  2. Python超时机制两种办法

    目录 1.问题 2.Python超时控制的两种办法(简单不复杂) 2.1 引入eventlet 2.2 引入func-timeout 3.总结 1.问题 最近做项目有一个问题,需要使用Python自动 ...

  3. 小米手机html无法,小米手机无法开机进入不了桌面怎么解决 两种办法解决小米手机无法开机问题...

    小米手机无法开机进入不了桌面怎么办,出现无法开机我们一个是可以刷机来解决,另一个临时办法就清除数据恢复出厂设置试一下,具体的两种解决无法开机问题,下面小编都为各位介绍 注意:不管是什么原因导致你手机无 ...

  4. 小米5进系统无显示无服务器,小米手机无法开机进入不了桌面怎么解决 两种办法解决小米手机无法开机问题...

    注意:不管是什么原因导致你手机无法开机我们都可以参考下面的方法来解决了,具体的如下. 方法一:小米手机无法进入系统的常用方法 1 既然不能开机了那肯定是已经关机了,我们现在只要同时按下开机键和音量放大 ...

  5. eclipse new server Cannot create a server using the selected type 网上有两种办法,其实原理一样...

    eclipse new server Cannot create a server using the selected type 网上有两种办法,其实原理一样 第一种说法: 还真的找到解决的方法了, ...

  6. win10计算机属性管理打不开,win10无法打开设置应用的两种解决方法【图文】

    自从微软发布win10系统后,越来越多小伙伴将自己的电脑升级为新版的win10系统,升级后发现竟然无法打开设置应用,影响正常操作,怎么办?接下去,小编和大家说说两种解决win10无法打开设置应用的方法 ...

  7. Arduino通过USB转TTL无BootLoader烧录程序的两种办法

    Arduino通过USB转TTL无BootLoader(引导程序)烧录程序的两种办法 注意 (这个实验室基于stm32duino的,avr单片机并不直接通用,不过如果你准备尝试使用串口来给avr单片机 ...

  8. html同一段文字设置不同颜色字体,CSS设置一个文字两种颜色

    CSS设置一个文字两种颜色属于前端实例代码,有关更多实例代码大家可以查看. CSS可以将一个文字设置为两种颜色,下面介绍一下如何实现此效果. 代码实例如下: 犀牛前端部落 .antzone{ disp ...

  9. 已知两个点的经纬度,计算两个点之间的距离(两种办法)

    网上淘来了两种办法,一种是haversine公式,这个公式的算法在ubuntu下测试距离长测两个点,非常不准.(在我需要使用这个算法的芯片平台测试也不准,类似ubuntu平台的误差.在visual s ...

最新文章

  1. vue weex 调用原生toast_vue-template-compiler 还能这么用
  2. d010:盈数、亏数和完全数
  3. MySQL MHA 安装
  4. CRM One Order search max hit实现原理讨论
  5. mysql有没有类似merge_有关于Mysql的MERGE表类型
  6. Delphi用ini文档实现界面无闪烁多语言转换
  7. USACO-Section1.3 Milking Cows (区间问题)
  8. asp实训报告摘要_个人网站实训报告---asp.NET 动态网站设计
  9. oracle客户端改字符集没有用,ORACLE客户端乱码 修改Oracle客户端字符集
  10. Java多线程(三)——多线程实现同步
  11. JavaFTP文件传输 简单实现
  12. 小鹏G3/G3i/P7/P5维修手册电路图用户手册维修诊断拆装技术资料
  13. iOS中使用storyboard实现页面跳转,Segue详解及简单的数据传递
  14. 【免费】前端设计师必须知晓的网站(1)
  15. hugo搭建个人博客
  16. html 背景透明颜色代码,html,body设置背景色透明
  17. BCompare替代UltraCompare(UltraEdit)
  18. Tumblr,instapaper分享
  19. 参加2022 年第四届齐鲁工业大学(山东省科学院)与山东师范大学ICPC 大学生程序设计竞赛的总结
  20. Java设计模式:游戏中的角色和武器抽象设计

热门文章

  1. 第34课 生命周期与素数 《小学生C++趣味编程》
  2. 【七】Java面向对象
  3. Java笔记-使用RabbitMQ的Java接口生产数据并消费
  4. QML工作笔记-文本输入设置长度以及回显方式(TextInput与TextField通用)
  5. Qt文档阅读笔记-两视图共享模型实现冻结列效果(frozencolumn解析与实例)
  6. Qt工作笔记-可拖动大小的QListWidget(自定义控件方式)
  7. Qt5.7| C/C++ 超级简单一学就会的仿QQ宠物
  8. js导出的xlsx无法打开_vue将数据导出为excel文件就是如此简单
  9. 起点计算机网,《零起点计算机》网第5课.pdf
  10. python多版本控制操作方法