我要刪除一個頁面,這是重定向的結果:我先訪問page1,然後通過http-equiv="refresh"
重定向到page2。我正在刪除page2。第2頁上的內容基於一些cookie page1集。我看到第一頁的回報2塊餅乾,但是當我請求第2頁(發送相同CookieContainer
,一個cookie被遺漏了什麼問題在我的代碼爲什麼錯過了一個cookie?
謝謝:?
首先: 我創建了一個CookieContainer
和HttpWebRequest
並要求第1頁。
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(eQuery);
req.AllowAutoRedirect = true; // but it doesn't autoredirects the meta-refresh
req.CookieContainer = cookiesContainer;
這是結果我得到這個從訪問第1頁
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
(...)
一切都很好,到目前爲止,我得到兩個餅乾在那裏,我得到的容器內的兩個Cookie對象。
然後我解析下一個url的meta http-equiv
的「內容」值。並使用相似的代碼並使用相同的容器來請求它。但只有一個cookie被髮送。這裏發送的HTTP:
GET DETECTED_URL_IN_HTTP_EQUIV_REFRESH HTTP/1.1
User-Agent: (...)
Host: example.com
Cookie: NAME1=VALUE1
正如你所看到的cookie NAME2丟失。爲什麼會發生?是兩個cookie中的相關差異(一個有路徑,另一個有過期日期)? 任何想法如何通過這兩個餅乾?
PS:我無權訪問page1,所以我無法設置Cookie的路徑或過期時間。我正在刪除這些頁面。
謝謝。
謝謝,但是我沒有權限在cookie中包含'path = /',因爲我正在刪除一個我無權訪問的服務器。我會看看我能做些什麼。不管怎樣,謝謝你。 – edteke 2011-04-12 20:57:55