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)