1

問題は、次のコードがあることです。

HttpWebRequest req;
HttpWebResponse resp;
// go to the site
req = NetLogHttpWebRequestFactory.Create("http://www.facebook.com/");            
resp = (HttpWebResponse)req.GetResponse();  

したがってresp.CookieContainer、 とresp.Cookiesは空ですが、resp.Headers["set-cookie"]対応する Cookie が含まれています。

datr=oMjsTlmv7Z1aIDOEVnIA11tQ; expires=Mon, 16-Dec-2013 16:51:44 GMT; path=/; domain=.facebook.com; httponly,reg_fb_gate=http%3A%2F%2Fwww.facebook.com%2F; path=/; domain=.facebook.com,reg_fb_ref=http%3A%2F%2Fwww.facebook.com%2F; path=/; domain=.facebook.com

resp.CookieContainer上記の適切な Cookie を含める必要があると考えるのが間違っている場合は?

みんなありがとう!


アップデート

質問CookieContainer bug?に記載されている Cookie コンテナーのバグ修正コードも試しました。ただし、システムが使用する前に呼び出す必要があるため、有効な結果も得られませんが、CookieContainerその時点では空です。

4

1 に答える 1

2

この問題を解決するには、リクエストオブジェクトのCookieContainerプロパティを初期化する必要があります

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.CookieContainer = new CookieContainer();

using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
    foreach (Cookie cookie in response.Cookies)
    {
        Console.WriteLine(cookie.Name +  " = " +  cookie.Value);
    }
}
于 2012-12-12T16:40:36.733 に答える