【问题标题】:HttpClient is adding it's own cookie headerHttpClient 正在添加它自己的 cookie 标头
【发布时间】:2015-07-21 20:59:05
【问题描述】:

我有一个很奇怪的问题。互联网上有所有关于如何添加和获取 cookie 的问题,我想要相反的;)

当我尝试通过 HttpHandler 发送请求时,它正在添加它自己的 Cookie 标头。我必须摆脱它。无需深入研究细节 - 添加时,我试图请求的服务器给了我错误的答案。它可以在没有这个 cookie 的情况下工作(在 fiddler 中尝试过)。

但回到问题,代码:

    string domain = "someMysteriousDomain";
    var handler = new HttpClientHandler();
    handler.UseDefaultCredentials = false;
    handler.AllowAutoRedirect = true;
    handler.ClientCertificateOptions = ClientCertificateOption.Manual;
    handler.UseCookies = false;

    var httpClient = new HttpClient(handler);

    var request = new HttpRequestMessage(HttpMethod.Get, domain);
    request.Headers.UserAgent.Add(new ProductInfoHeaderValue("Mozilla", "5.0"));
    request.Headers.AcceptEncoding.Add(new StringWithQualityHeaderValue("gzip"));

    var response = await httpClient.SendAsync(request);

在提琴手中看到的原始请求:

GET https://domain HTTP/1.1
Accept-Encoding: gzip
User-Agent: Mozilla/5.0
Host: domain
Connection: Keep-Alive
Cookie: cadata477E7C1824F44800AF0077724F65345="51595d316-0286-44bb-bc6f-ffb1fd311a92SqJA36rA69YW7aBg+iHXYi9LAcBLN6DBWE8a3MLejd2VCluO/UQ5eF6F6T4NWh4NhdRcv4rea15Hs0e2q6GatMac59UVbljhREYdH6PRbzZC/2qn8QHtpc6go5B56R"; mobile=0

我不想添加那个 cookie!如何删除/清除/无论如何? 我正在使用带有 Windows 通用项目的 Visual Studio Community 2015。 有趣的是,几个小时后重新启动我的电脑后,我能够在没有此 cookie 的情况下发出 2 或 3 个请求(使用相同的代码),然后返回 mysterios cookie。 它是关于什么的?如何摆脱它?

【问题讨论】:

    标签: c# windows cookies httpclient win-universal-app


    【解决方案1】:

    感谢您报告此问题 - 这是 Windows 10 上 System.Net.Http.HttpClientHandler API 实现的一个已知问题,我们正在努力在即将发布的版本中修复它。

    同时,一种可能的解决方法是使用带有底层 HttpBaseProtocolFilter 类的 Windows.Web.Http.HttpClient API。此类有一个名为 CookieManager 的属性,用于存储每个 URI 的所有 cookie。您可以编写一个方法,在发送请求之前从目标 URI 的 CookieManager 中删除 cookie。这将确保不会发送任何 cookie。您可以查看此示例了解如何从 CookieManager 中删除 cookie:https://github.com/Microsoft/Windows-universal-samples/tree/master/httpclient

    谢谢 西达斯 [MSFT]

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-12
    • 2012-08-14
    • 1970-01-01
    • 2019-09-13
    相关资源
    最近更新 更多