4
웹 브라우저 컨트롤을 사용하여 웹 사이트를 열고 쿠키를 cookieContainer에 저장 한 다음 HTTP 브라우징을 사용하여 앞으로 탐색 페이지 등을 처리합니다.쿠키 컨테이너에서 쿠키를 제거/업데이트하는 방법 C#?
검색을하면 첫 페이지에 100 페이지가 반환됩니다. 그것은 ABC라고 이름 붙여진 쿠키를 저장하고 두 번째 페이지에서 다음 페이지로 다시 이동합니다. 동일한 쿠키 : ABC에 약간의 값이 주어졌지만 지금은 cookiecontainer에 두 개의 동일한 쿠키가 있고 이동하면 다음 페이지로 가면 작동하지 않습니다. 모든 것을 망쳐 놓은 첫 번째 쿠키를 사용합니다.
해결 방법?
의 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 페이지의 쿠키를 포함하고 2 페이지에 쿠키를 가져 오기로되어 있습니다. 충돌하는 페이지 1과 동일한 이름. – confusedMind