2011-01-25 52 views
2

CookiesHttpWebRequest是隻讀的,但我需要更改一些cookie。如何更改HttpWebRequest Cookie?

我可以使用Set-Cookie標題,但它很容易出錯。無論如何,以OO的方式更改HttpWebRequest餅乾?

如果不是,我怎樣才能得到System.Net.Cookie的標題文本? (我將在Set-Cookie頭使用它)

回答

2
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); 
} 
+0

的問題是`CookieCollection`在`targetrequest`不與`targetrequest.Headers`同步。如果我操作集合,它不會影響`Header`字符串。 – Xaqron 2011-01-25 11:04:22

0

看一看 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 = ...