如何使用HttpWebRequest的cookie

我正在创build一个从网页上检索数据的应用程序。 页面受密码保护,当用户login时,cookie被创build。

为了检索应用程序首先必须login的数据:使用用户名和密码进行networking请求并存储cookie。 然后,当cookie被存储时,它必须被添加到所有请求的标题中。

这里是请求和检索内容的方法:

public void getAsyncDailyPDPContextActivationDeactivation() { HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(dailyPDPContextActivationDeactivation); IAsyncResult asyncResult = httpWebRequest.BeginGetResponse(null, null); asyncResult.AsyncWaitHandle.WaitOne(); using (HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.EndGetResponse(asyncResult)) using (StreamReader responseStreamReader = new StreamReader(httpWebResponse.GetResponseStream())) { string responseText = responseStreamReader.ReadToEnd(); } } 

有谁知道如何修改这个方法来添加一个cookie到头部?

下面是浏览器的请求头结构的打印屏幕:

替代文字http://img404.imageshack.us/img404/4793/cookiea.jpg

如果有人提出了一种从响应中存储cookie的方法(当应用程序发出请求http:xxx.xxx.xxx/login?username = xxx&password = xxx时,cookie会被创build并且必须被存储以备将来的请求)。

 CookieContainer cookieContainer = new CookieContainer(); HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(...); httpWebRequest.CookieContainer = cookieContainer; 

然后你在随后的请求中重用这个CookieContainer:

 HttpWebRequest httpWebRequest2 = (HttpWebRequest)WebRequest.Create(...); httpWebRequest2.CookieContainer = cookieContainer; 

使用CookieContainer或者您可以使用CookieAwareWebClient