HttpClient 正在发送额外的 cookie

2023-12-14

运行 UWP 应用*

所以我有一个 HttpClient 及其关联的处理程序。我正在向网站发出请求,传入指定的标头,并使用指定的 CookieContainer,该 CookieContainer 在请求开始时为空。

当我发送请求时,Fiddler 显示正在发送但我尚未添加的额外 cookie。他们来自哪里?

CookieContainer cookieJar = new CookieContainer();                
HttpClientHandler handler = new HttpClientHandler( );
handler.UseDefaultCredentials = false;
handler.CookieContainer = cookieJar;
handler.Proxy = null;
using (var client = new HttpClient(handler as HttpClientHandler))
{
    HttpResponseMessage response = new HttpResponseMessage();
    String loginUrl = Const.BUNGIE_LOGIN_URI + (provider == Const.XBOX_PLATFORM ? Const.XBOX_LOGIN : Const.PS_LOGIN);
    client.BaseAddress = new Uri(loginUrl);
    //client.Timeout = new TimeSpan(0, 0, 0, 0, 450);
    client.DefaultRequestHeaders.Add("Referer", "http://www.bungie.net");
    client.DefaultRequestHeaders.Add("User-Agent", Const.USERAGENT);
    client.DefaultRequestHeaders.Add("X-API-Key", Const.X_API_KEY);
    client.DefaultRequestHeaders.Add("Connection", "Keep-Alive");
    client.DefaultRequestHeaders.Add("Accept", "application/json");
    client.DefaultRequestHeaders.Add("Accept-Language", "en-GB,en-US;q=0.8,en;q=0.6");
    handler.AutomaticDecompression = DecompressionMethods.GZip;

    response = client.GetAsync("").Result;
    response.ReadCookies(); //adds cookies to cookieJar
 }

小提琴手显示什么

现在,作为相关CookieContainer在发出请求之前是空的,这些cookie从哪里来?它们可以访问吗?如果我想要它们的值,我该如何获取它们?

编辑:它们从哪里添加到我的 HttpClient 请求中? HttpClient 有通用的 CookieContainer / 缓存吗?我有两个单独的 HttpClient 实例,当客户端 (A) 发出请求时,它收到一个“set-cookie”标头,设置一个“错误的”cookie。

随后,HttpClient 的一个单独实例(客户端 (B))向同一网站发出请求,并发送客户端 (A) 中设置的 cookie。

我没有明确地将这个 cookie 附加到客户端 (B) 的请求中,那么它是如何添加的呢?


在 Windows 10 版本 10240 上,System.Net.Http.HttpClient是一个包装在上面Windows.Web.Http.HttpClient (更多信息在这里),因此,cookie 现在的工作方式略有不同。

要删除这些额外的 cookie,您需要使用HttpCookieManager:

HttpBaseProtocolFilter filter = new HttpBaseProtocolFilter();
HttpCookieManager cookieManager = filter.CookieManager;
foreach (HttpCookie cookie in cookieManager.GetCookies(uri))
{
    cookieManager.DeleteCookie();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HttpClient 正在发送额外的 cookie 的相关文章

  • 无法使用已与其底层 RCW 分离的 COM 对象。在 oledb 中

    我收到此错误 但我不知道我做错了什么 下面的代码在backrgroundworker中 将异常详细信息复制到剪贴板 System Runtime InteropServices InvalidComObjectException 未处理 通
  • 获取按下的按钮的返回值

    我有一个在特定事件中弹出的表单 它从数组中提取按钮并将标签值设置为特定值 因此 如果您要按下或单击此按钮 该函数应返回标签值 我怎样才能做到这一点 我如何知道点击了哪个按钮 此时代码返回 DialogResult 但我想从函数返回 Tag
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 如何在列表框项目之间画一条线

    我希望能够用水平线分隔列表框中的每个项目 这只是我用于绘制项目的一些代码 private void symptomsList DrawItem object sender System Windows Forms DrawItemEvent
  • 使闭包捕获的变量变得易失性

    闭包捕获的变量如何与不同线程交互 在下面的示例代码中 我想将totalEvents 声明为易失性的 但C 不允许这样做 是的 我知道这是错误的代码 这只是一个例子 private void WaitFor10Events volatile
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • 在 Visual Studio 2008 上设置预调试事件

    我想在 Visual Studio 中开始调试程序之前运行一个任务 我每次调试程序时都需要运行此任务 因此构建后事件还不够好 我查看了设置的 调试 选项卡 但没有这样的选项 有什么办法可以做到这一点吗 你唯一可以尝试的 IMO 就是尝试Co
  • 将目录压缩为单个文件的方法有哪些

    不知道怎么问 所以我会解释一下情况 我需要存储一些压缩文件 最初的想法是创建一个文件夹并存储所需数量的压缩文件 并创建一个文件来保存有关每个压缩文件的数据 但是 我不被允许创建许多文件 只能有一个 我决定创建一个压缩文件 其中包含有关进一步
  • Web API - 访问 DbContext 类中的 HttpContext

    在我的 C Web API 应用程序中 我添加了CreatedDate and CreatedBy所有表中的列 现在 每当在任何表中添加新记录时 我想填充这些列 为此目的我已经覆盖SaveChanges and SaveChangesAsy
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 在数据库中搜索时忽略空文本框

    此代码能够搜索数据并将其加载到DataGridView基于搜索表单文本框中提供的值 如果我将任何文本框留空 则不会有搜索结果 因为 SQL 查询是用 AND 组合的 如何在搜索 从 SQL 查询或 C 代码 时忽略空文本框 private
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • for循环中计数器变量的范围是多少?

    我在 Visual Studio 2008 中收到以下错误 Error 1 A local variable named i cannot be declared in this scope because it would give a
  • 将 unsigned char * (uint8_t *) 转换为 const char *

    我有一个带有 uint8 t 参数的函数 uint8 t ihex decode uint8 t in size t len uint8 t out uint8 t i hn ln for i 0 i lt len i 2 hn in i
  • C++ 复制初始化和直接初始化,奇怪的情况

    在继续阅读本文之前 请阅读在 C 中 复制初始化和直接初始化之间有区别吗 https stackoverflow com questions 1051379 is there a difference in c between copy i
  • 需要哪个版本的 Visual C++ 运行时库?

    microsoft 的最新 vcredist 2010 版 是否包含以前的版本 2008 SP1 和 2005 SP1 还是我需要安装全部 3 个版本 谢谢 你需要所有这些
  • 控制到达非 void 函数末尾 -wreturn-type

    这是查找四个数字中的最大值的代码 include
  • 如何让Gtk+窗口背景透明?

    我想让 Gtk 窗口的背景透明 以便只有窗口中的小部件可见 我找到了一些教程 http mikehearn wordpress com 2006 03 26 gtk windows with alpha channels https web
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver
  • 恢复上传文件控制

    我确实阅读了以下帖子 C 暂停 恢复上传 https stackoverflow com questions 1048330 pause resume upload in c 使用 HTTP 恢复上传 https stackoverflow

随机推荐

  • SortedList<>、SortedDictionary<> 和 Dictionary<>

    我发现SortedList
  • 线程“main”java.sql.SQLException中出现异常:用户“@”localhost'访问被拒绝(使用密码:NO)

    Exception in thread main java sql SQLException Access denied for user localhost using password NO at com mysql cj jdbc e
  • 带有对象列表的 OpenAPI 查询字符串参数

    我正在尝试记录OpenAPI一个查询字符串 看起来像 filtered 0 id code filtered 0 value 12345 并包含具有属性的对象列表id and value My yaml文档如下所示 parameters n
  • JVM 规范中引用大小的混乱

    JVM 规范规定引用仅占用一个局部变量槽 jvms12 2 6 1 此外它还指出double and long 占用两个局部变量槽 因为它们是 64 位的 这是否意味着所有 JVM 兼容的实现都必须使用 32 位寻址 64 位 JVM 如何
  • Ruby/Rails 哈希火箭语法 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 有人能给我指点一本很好的入门书来解释 Ruby Rails 中的不同语法特征吗 例如 为什么我看到的一些例子是这样的myMethod x z 和其他人一样myMethod x gt
  • Android webView在后台加载

    我有一个应用程序 我想打开网络视图 现在我正在以最简单的方式加载网络视图 我想在后台加载网页 这样用户就不会有等待时间 可能在后台运行的服务或先前的活动中 我浏览了论坛 找不到该主题的参考 将给予帮助 谢谢 您可以将 Web 视图的可见性设
  • 为什么 http.Request 参数必须是指针?

    package main import net http func main http HandleFunc func w http ResponseWriter r http Request w Write byte hello worl
  • 具有选择性属性突出显示的语法荧光笔 - VS Addin

    是否有任何 VS 添加用于突出显示整个代码中的特定代码块或属性 谢谢 皮尤什 是的 有件事可以帮助你 视觉辅助X加载项来自http www wholetomato com 它有很多功能 包括突出显示光标下的符号 如果我正确理解你的问题
  • WSDL 或 wsimport 和 wsdl (mono) 都严重损坏

    EDIT我从下面给出的示例开始 但现在我有了 尝试了 W3C 规范中的示例 修复另一个错误后 绑定被称为StockQuoteSoapBinding在一个地方 StockQuoteBinding在另一篇文章中 它给出了同样的问题 尝试过单声道
  • NSArray 等价于 Map

    给定一个NSArray of NSDictionary对象 包含类似的对象和键 是否可以编写执行映射到指定键的数组 例如 在 Ruby 中可以通过以下方式完成 array map name 它只节省了几行 但我在 NSArray 上使用了一
  • 难以理解脚本中的参数替换

    我试图理解 bashscript其前四行是 bin sh SCRIPT basename 0 sed s CONFIG 1 HOME SCRIPT DIR 2 HOME Documents 我知道最后两行正在对作为脚本参数 1 和 2 输入
  • Kivy Apk Buildozer:ReferenceError:弱引用对象不再存在

    谁能告诉我为什么我的应用程序崩溃了 很奇怪的是 当我第一次运行我的应用程序时 它没有崩溃 但下次我运行它时它会崩溃 我得到这样的东西 我正在使用 KIVYMD KIVY SOCKET KIVY MAPVIEW SQLITE3 下面是我通过
  • 将Holoeverywhere添加到Android Studio中的项目中

    我是 Gradle 和 Android Studio 基于 Intellij Idea 的 IDE 的新手 我的问题是纠正导入 Holoeverywhere 到项目 我读了很多类似的主题 但他们没有给出我的问题的解决方案 类似主题 Andr
  • 图像在悬停时移动 - 铬不透明度问题

    我的页面似乎有问题 http www lonewulf eu 当鼠标悬停在缩略图上时 图像会向右移动一点 并且这种情况仅发生在 Chrome 上 My css img ms filter progid DXImageTransform Mi
  • 没有 cookie 的 Laravel 会话

    我有一个应用程序 允许用户登录并将商品添加到购物篮 但是如果用户关闭了 cookie 则此功能将不再起作用 我检查过 Facebook 结果发现他们也需要启用 cookie 才能正常工作 所以我的问题是 是否可以在没有 cookie 的情况
  • 验证 Firebase 键是否为整数

    这是数据库架构 规则如下 notifications year read false write data exists month read false write data exists day read false write dat
  • 仅根据索引计算第 N 个多重集组合(具有重复)

    我怎样才能仅根据它的索引来计算第 N 个组合 应该有 n k 1 k n 1 种重复组合 with n 2 k 5 you get 0 0 0 0 0 0 1 0 0 0 0 1 2 0 0 0 1 1 3 0 0 1 1 1 4 0 1
  • 构建后事件执行 PowerShell

    是否可以使用构建后事件设置 NET 项目来执行 powershell 脚本 我正在使用这个脚本来生成一些文件 我还可以将它是调试版本还是发布版本传递给脚本 举一个这样的例子就太好了 这是一个例子 首先 您必须意识到必须配置 PowerShe
  • 检查卸载前是否保存了更改

    我有以下 JavaScript 编辑 包含更改已保存的分配 var changesSaved true document ready function applyChanges click function e e preventDefau
  • HttpClient 正在发送额外的 cookie

    运行 UWP 应用 所以我有一个 HttpClient 及其关联的处理程序 我正在向网站发出请求 传入指定的标头 并使用指定的 CookieContainer 该 CookieContainer 在请求开始时为空 当我发送请求时 Fiddl