4
我使用webbrowser控件打開網站,然後在cookieContainer中保存cookie,然後使用HTTPwebrequest處理前進瀏覽頁面等。如何刪除/更新cookie容器中的cookie c#?
問題出現,當我進行搜索並返回100頁時,在第一頁,它會保存一個名爲ABC的cookie,我將它添加到cookiecontainer中並移動到下一頁,在第二頁上再次顯示相同的Cookie:ABC給出了一些值,但現在我在cookiecontainer中有兩個相同的cookie,並且當我移動到下一頁,它不起作用,因爲它採取了第一個餅乾弄糟了所有東西。
如何解決這個問題?
HttpWebRequest的功能:
public string getHtmlCookies(string url)
{
string responseData = "";
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Accept = "*/*";
request.AllowAutoRedirect = true;
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)";
request.Timeout = 30000;
request.Method = "GET";
request.CookieContainer = yummycookies;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
foreach (Cookie cookie in response.Cookies)
{
string name = string.Empty;
name = cookie.Name;
string value = cookie.Value;
string path = "/";
string domain = "www.example.com";
yummycookies.Add(new Cookie(name.Trim(), value.Trim(), path, domain));
}
Stream responseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(responseStream);
responseData = myStreamReader.ReadToEnd();
}
response.Close();
}
catch (Exception e)
{
responseData = "An error occurred: " + e.Message;
}
return responseData;
}
你並不需要明確地從響應加餅乾,他們將被添加到yummycookies當你迴響應(只要因爲它不會重定向) –
如果我不添加它們,它甚至不會從第1頁移動到第2頁。 – confusedMind
這個yummyCookie包含登錄信息,後面是第1頁上的cookie,然後應該在第2頁上獲取cookie,與第1頁上的名稱相沖突。 – confusedMind