1. ホーム
  2. c#

[解決済み】HttpClientのHttpRequestMessageにCookieを設定する方法

2022-03-31 16:28:09

質問

Web apiの HttpClient を使用して、アカウントを識別する HTTP クッキーの形式でログインを要求するエンドポイントに投稿します (これは #ifdef リリース版では除外されています)。

どのようにしたらクッキーを HttpRequestMessage ?

解決方法は?

ここでは、リクエストにカスタムクッキーの値を設定する方法を説明します。

var baseAddress = new Uri("http://example.com");
var cookieContainer = new CookieContainer();
using (var handler = new HttpClientHandler() { CookieContainer = cookieContainer })
using (var client = new HttpClient(handler) { BaseAddress = baseAddress })
{
    var content = new FormUrlEncodedContent(new[]
    {
        new KeyValuePair<string, string>("foo", "bar"),
        new KeyValuePair<string, string>("baz", "bazinga"),
    });
    cookieContainer.Add(baseAddress, new Cookie("CookieName", "cookie_value"));
    var result = await client.PostAsync("/test", content);
    result.EnsureSuccessStatusCode();
}