我要删除一个页面,这是重定向的结果:我先访问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