リダイレクトの結果であるページを廃棄しています。最初にpage1にアクセスしてから、を介してpage2にリダイレクトしhttp-equiv="refresh"
ます。page2を廃棄しています。page2のコンテンツは、いくつかのCookiepage1セットに基づいています。page1が2つのCookieを返すのがわかりますが、ページ2をリクエストすると(同じものを送信するとCookieContainer
、1つのCookieが失われます。コードの何が問題になっていますか?
ありがとうございました:
最初に:私はとを作成し、CookieContainer
page1HttpWebRequest
を要求します。
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(eQuery);
req.AllowAutoRedirect = true; // but it doesn't autoredirects the meta-refresh
req.CookieContainer = cookiesContainer;
これは、page1にアクセスして得た結果です。
HTTP/1.1 200 OK
Date: Tue, 12 Apr 2011 19:14:06 GMT
Server: (...)
Set-Cookie: NAME1=VALUE1; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: NAME2=VALUE2; expires=Wed, 13-Apr-2011 19:14:06 GMT
Content-Length: 174
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html
(...)
これまでのところすべて問題ありません。2つのCookieがあり、コンテナ内に2つのCookieオブジェクトがあります。
meta http-equiv
次に、次のURLのの「コンテンツ」値を解析します。同様のコードを使用し、同じコンテナを使用してリクエストします。ただし、送信されるCookieは1つだけです。送信されるHTTPは次のとおりです。
GET DETECTED_URL_IN_HTTP_EQUIV_REFRESH HTTP/1.1
User-Agent: (...)
Host: example.com
Cookie: NAME1=VALUE1
ご覧のとおり、CookieNAME2がありません。なぜそれが起こっているのですか?2つのCookieに関連する違いはありますか(1つにはパスがあり、もう1つには有効期限があります)?どうすれば2つのCookieを渡すことができますか?
PS:page1にアクセスできないため、Cookieのパスや有効期限を設定できません。私はそれらのページを廃棄しています。
ありがとうございました。