c# 如何在HttpClient的HttpRequestMessage上设置cookie




1 Answers

接受的答案是在大多数情况下做到这一点的正确方法。 但是,在某些情况下,您需要手动设置Cookie标头。 通常,如果您设置了“Cookie”标头,它将被忽略,但这是因为HttpClientHandler默认使用CookieContainer属性来存储Cookie。 如果通过将UseCookies设置为false来禁用该功能,则可以手动设置Cookie标头,并将它们显示在请求中,例如

var baseAddress = new Uri("http://example.com");
using (var handler = new HttpClientHandler { UseCookies = false })
using (var client = new HttpClient(handler) { BaseAddress = baseAddress })
{
    var message = new HttpRequestMessage(HttpMethod.Get, "/test");
    message.Headers.Add("Cookie", "cookie1=value1; cookie2=value2");
    var result = await client.SendAsync(message);
    result.EnsureSuccessStatusCode();
}
c# rest asp.net-mvc-4 asp.net-web-api

我正在尝试使用web api的HttpClient为端点发布帖子,该端点需要以标识帐户的HTTP cookie的形式进行登录(这只是发布版本中#ifdef的一部分)。

如何将Cookie添加到HttpRequestMessage




Related