언어 : C#
개발 환경 : Visual Studio를 내가 웹 사이트에 로그인하고 거기에서 일부 데이터를 얻으려면 2008로그인 웹 사이트, 호기심 쿠키 문제
. 내 문제는 쿠키가 작동하지 않는다는 것입니다. 웹 사이트에서는 쿠키를 활성화해야한다고 말하면서 Cookiecontainer 쿠키를 활성화했습니다.
나는 로그인 진행을 위해 여러 번 트래픽을 스니핑했는데 아무런 문제가 없습니다.
로그인 페이지는 ... 내가 로그인하는 다른 방법을 시도하고 다른 사람이 문제가 있지만 결과가 있다면 내가 검색 한 "www.uploaded.to"여기에 약식으로 로그인 내 코드는 다음과 같습니다
지금 private void login()
{
//Global CookieContainer for all the Cookies
CookieContainer _cookieContainer = new CookieContainer();
//First Login to the Website
HttpWebRequest _request1 = (HttpWebRequest)WebRequest.Create("http://uploaded.to/login");
_request1.Method = "POST";
_request1.CookieContainer = _cookieContainer;
string _postData = "email=XXXXX&password=XXXXX";
byte[] _byteArray = Encoding.UTF8.GetBytes(_postData);
Stream _reqStream = _request1.GetRequestStream();
_reqStream.Write(_byteArray, 0, _byteArray.Length);
_reqStream.Close();
HttpWebResponse _response1 = (HttpWebResponse)_request1.GetResponse();
_response1.Close();
//########################
//Follow the Link from Request1
HttpWebRequest _request2 = (HttpWebRequest)WebRequest.Create("http://uploaded.to/login?coo=1");
_request2.Method = "GET";
_request2.CookieContainer = _cookieContainer;
HttpWebResponse _response2 = (HttpWebResponse)_request2.GetResponse();
_response2.Close();
//#######################
//Get the Data from the Page after Login
HttpWebRequest _request3 = (HttpWebRequest)WebRequest.Create("http://uploaded.to/home");
_request3.Method = "GET";
_request3.CookieContainer = _cookieContainer;
HttpWebResponse _response3 = (HttpWebResponse)_request3.GetResponse();
_response3.Close();
}
나는 몇 주 이후이 문제에 붙어있어 그리고 난 내가 다시 시도했습니다 도와주세요, 작동 해결책 ...
, 첫 번째 요청 작업 (로그인)을 찾을 수 없습니다 . 나는 인증을받은 쿠키를 얻는다. 응답 텍스트는 URL : http://uploaded.to/login?coo=1입니다. 이제이 URL에 대해 GET 요청을해야합니다. 그러나 문제는 Wireshark를 사용하여이 요청에서 쿠키를 전송하지 않습니다. 쿠키에 httpwebrequest 문제가 있습니까?
내 코드 :
CookieContainer _cookieContainer = new CookieContainer();
//First Login to the Website
HttpWebRequest _request1 = (HttpWebRequest)WebRequest.Create("http://uploaded.to/login");
_request1.Method = "POST";
_request1.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
_request1.AllowAutoRedirect = false;
_request1.CookieContainer = _cookieContainer;
_request1.ContentType = "application/x-www-form-urlencoded";
_request1.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)";
_request1.Headers.Add(HttpRequestHeader.CacheControl, "no-cache=set-cookie");
string _postData = "email=XXXXX&password=XXXXXX";
byte[] _byteArray = Encoding.UTF8.GetBytes(_postData);
_request1.ContentLength = _byteArray.Length;
Stream _reqStream = _request1.GetRequestStream();
_reqStream.Write(_byteArray, 0, _byteArray.Length);
_reqStream.Close();
HttpWebResponse _response1 = (HttpWebResponse)_request1.GetResponse();
StreamReader _reader1 = new StreamReader(_response1.GetResponseStream());
CookieCollection _cookieCollection = new CookieCollection();
foreach (Cookie _cook in _response1.Cookies)
{
_cookieCollection.Add(_cook);
}
wbrowser_html.DocumentText = _reader1.ReadToEnd();
_response1.Close();
_reader1.Close();
//########################
HttpWebRequest _request2 = (HttpWebRequest)WebRequest.Create("http://uploaded.to/login?coo=1");
_request2.Method = "GET";
_request2.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
_request2.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)";
_request2.Referer = "http://uploaded.to/login";
_request2.KeepAlive = true;
//Here I set the language and the auth cookie, works fine
_request2.CookieContainer = _cookieContainer;
_request2.CookieContainer.Add(_cookieCollection);
_request2.Headers.Add(HttpRequestHeader.CacheControl, "no-cache=set-cookie");
HttpWebResponse _response2 = (HttpWebResponse)_request2.GetResponse();
StreamReader _reader2 = new StreamReader(_response2.GetResponseStream());
wbrowser_html.DocumentText = _reader2.ReadToEnd();
_response2.Close();
_reader2.Close();
그리고 지금은 Wireshark를 확인하고 두 번째 요청에는 쿠키가없는 참조합니다. 요청에 추가했지만 어쨌든 그들은 서버에 보내지 않았습니다 ??
누구든지이 문제를 해결할 생각이 있으십니까?
동일합니다. 귀하의 코드를 시도해도 프로그램이 로그인하지 않으면 수신 한 쿠키는 언어 쿠키와 인증 쿠키가 아닙니다. 코드를 약간 변경하면 웹 사이트에 쿠키가 활성화되어 있지 않다는 메시지가 다시 나타납니다. 웹 사이트에 로그인하면 정상적으로 매우 쉽게 물마루가되지만이 웹 사이트에서는 매우 어렵습니다. 문제가 어디에 있는지 알지 못합니다. –