4

Windows Phone 8、Windows 8、および .NET 4.5 の共通ライブラリとして、.NET HttpClient for PCL (2.2.15) を使用しています。ただし、リクエストに Cookie が適用されているようには見えません。

次のコードを使用して HttpClient と HttpClientHandler を設定しています。HttpClient はラッピング クラスのプロパティです。

CookieContainer = new CookieContainer();

var handler = new HttpClientHandler
{
    AllowAutoRedirect = true,
    CookieContainer = CookieContainer,
    Credentials = client.CredentialCache,
    UseCookies = true,
    AutomaticDecompression = 
          DecompressionMethods.Deflate | DecompressionMethods.GZip
};

HttpClient = new HttpClient(handler, false);

リクエストは以下を使用して送信されています。

var response = await HttpClient.SendAsync(httpRequestMessage);

デバッグでステップスルーするときにハンドラーの CookieContainer をのぞき見ることができ、予想される Cookie で作業しているドメインの CookieContainer を確認できます。

Cookie には次の値があります。

  • パス = '/'
  • ドメイン = '.staging3.api.com'
  • 値 = [authentication_id]
  • 名前 = 'API_AuthId'

後続のリクエストは大まかに次のとおりです。https://staging3.api.com/api/v3/Items

私も自分でクッキーを設定しようとしましたCookieContainer.GetCookieHeader(requestUri)が、空の文字列を返します。

追加情報:

requestUri を変更するとhttps://www.staging3.api.com/api/v3/Items、Cookie ヘッダーを取得できますCookieContainer.GetCookieHeader(requestUri)

4

0 に答える 0