Cookies
在HttpWebRequest
是隻讀的,但我需要更改一些cookie。如何更改HttpWebRequest Cookie?
我可以使用Set-Cookie
標題,但它很容易出錯。無論如何,以OO
的方式更改HttpWebRequest
餅乾?
如果不是,我怎樣才能得到System.Net.Cookie
的標題文本? (我將在Set-Cookie
頭使用它)
Cookies
在HttpWebRequest
是隻讀的,但我需要更改一些cookie。如何更改HttpWebRequest Cookie?
我可以使用Set-Cookie
標題,但它很容易出錯。無論如何,以OO
的方式更改HttpWebRequest
餅乾?
如果不是,我怎樣才能得到System.Net.Cookie
的標題文本? (我將在Set-Cookie
頭使用它)
HttpWebRequest targetrequest = (HttpWebRequest)WebRequest.Create(targeturl);
targetrequest.CookieContainer = new CookieContainer();
foreach (string clientcookie in Request.Cookies) {
Cookie targetcookie = new Cookie(clientcookie, Request.Cookies[clientcookie].Value, "/", targetrequest.RequestUri.Host);
targetrequest.CookieContainer.Add(targetcookie);
}
看一看 http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.cookiecontainer(v=VS.90).aspx
您需要初始化的CookieContainer對象,然後添加你的餅乾給它。
如果您從HttpWebResponse獲取Cookie,只需將集合添加到CookieContainer(請參閱:http://msdn.microsoft.com/en-us/library/system.net.cookiecontainer.add(v=VS.90).aspx)。
要改變一個特定的Cookie,你應該訪問並改變其值:
cookies["cookie_name"].Expiration = ...
的問題是`CookieCollection`在`targetrequest`不與`targetrequest.Headers`同步。如果我操作集合,它不會影響`Header`字符串。 – Xaqron 2011-01-25 11:04:22