쿠키를 사용하는 웹 사이트에 연결하려고합니다. 내 로그인은 다음과 같습니다 :쿠키 검색 및 설정
private void button1_Click(object sender, EventArgs e)
{
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(baseurl);
req.Referer = referer;
req.AllowAutoRedirect = true;
req.KeepAlive = true;
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
byte[] postbuf = Encoding.ASCII.GetBytes(login);
req.ContentLength = postbuf.Length;
Stream rs = req.GetRequestStream();
rs.Write(postbuf, 0, postbuf.Length);
rs.Close();
cookie = req.CookieContainer = new CookieContainer();
WebResponse resp = req.GetResponse();
string s = "";
foreach (Cookie c in cookie.GetCookies(req.RequestUri))
{
s += ("Cookie['" + c.Name + "']: " + c.Value);
}
textBox1.Text = s;
resp.Close();
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex);
}
}
쿠키에는 값이있는 2 개의 키가 있습니다. 그런 다음 웹 사이트에 다음과 같이 게시물 요청을 보내려고합니다.
private void button2_Click(object sender, EventArgs e)
{
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(search);
req.Referer = referer;
req.AllowAutoRedirect = true;
req.KeepAlive = true;
req.CookieContainer = cookie;
StreamReader reader = new StreamReader(req.GetResponse().GetResponseStream());
if (reader != null)
{
string data = reader.ReadToEnd();
reader.Close();
textBox1.Text = data;
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex);
}
}
그러나 인증 할 수 없다는 오류가 발생합니다. firefox를 사용하여 로그인하면 쿠키에 더 많은 항목이 포함되어 있습니다.
내 코드가 잘못되었습니다.
:
cookie
이후당신이 스트림을 기록하기 전에 전역 변수는 한 번만 초기화가 선언 어디에 예를 들어 말을하고 설정인가? – TheBoyan
제목에 "C#"을 넣지 마십시오. 이것이 바로 태그가있는 것입니다. – Amy
@Bojan : 아니요 –