簡體   English   中英

如何使用cookie request.getresponse()

[英]How to request.getresponse() with cookie

我想添加Cookies並獲取http網站源代碼,如何將Cookies添加到我的代碼中,以及當getresponse()網站讀取我的Cookies時?

enter code here
WebRequest scienceRequest = WebRequest.Create("http://www.google.com");       
WebResponse scienceResponse = scienceRequest.GetResponse();
Stream ReceiveStream = scienceResponse.GetResponseStream();
scienceResponse = scienceRequest.GetResponse();
ReceiveStream = scienceResponse.GetResponseStream();
StreamReader readStream = new StreamReader(ReceiveStream, encode);
string strResponse = readStream.ReadToEnd();
readStream.Close();
scienceResponse.Close();

我發現

private void ReadCallback(IAsyncResult asynchronousResult)
{
    HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
    HttpWebResponse response = (HttpWebResponse)
        request.EndGetResponse(asynchronousResult);
    using (IsolatedStorageFile isf =
        IsolatedStorageFile.GetUserStoreForSite())
    {
        using (IsolatedStorageFileStream isfs = isf.OpenFile("CookieExCookies",
            FileMode.OpenOrCreate, FileAccess.Write))
        {
            using (StreamWriter sw = new StreamWriter(isfs))
            {
                foreach (Cookie cookieValue in response.Cookies)
                {
                    sw.WriteLine("Cookie: " + cookieValue.ToString());
                }
                sw.Close();
            }
        }

    }
}

您可以為此使用CookieContainer 您可以使用創建

CookieContainer cookieJar = new CookieContainer();
// Optionally add some values to the container
cookieJar.Add(new Uri("http://www.domain.com"), new Cookie("name", "Raeled"));

然后,您可以將容器附加到您的請求中(可以一次又一次地執行以保持使用相同的cookie):

(scienceRequest as HttpWebRequest).CookieContainer = cookieJar;

然后,網頁將使用容器中的cookie,並在需要時進行更改。 如果網頁更改了它們,您可以使用以下方法將其讀回:

CookieCollection collection = cookieJar.GetCookies(new Uri("http://www.domain.com"));
string myValue = collection["name"].Value;

要獲取或設置,您需要提供URI,因為CookieContainer可以在單個CookieContainer跟蹤不同域的cookie。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM