Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Проблема с HttpWebRequest и HttpWebResponse


Автор: graph 26.6.2009, 15:12
необходимо авторизоваться на сайте для этого использовал HttpWebRequest и HttpWebResponse...но на сайт войти не могу. Не могу понять в чем проблема!?
сам код:
Код

HttpWebResponse result = null;
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://www.people.md/");
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
byte[] SomeBytes = null;
string FormParams = "username=" + textBox1.Text + "&password=" + textBox2.Text;
SomeBytes = Encoding.GetEncoding(1251).GetBytes(FormParams);
req.ContentLength = SomeBytes.Length;
Stream newStream = req.GetRequestStream();
newStream.Write(SomeBytes, 0, SomeBytes.Length);
newStream.Close();
result = (HttpWebResponse)req.GetResponse();
string[] cookieVal = null;
if (result.Headers["Set-Cookie"] != null)
cookieVal = result.Headers["Set-Cookie"].Split(new char[] { ',' });
Stream ReceiveStream = result.GetResponseStream();
Encoding encode = Encoding.GetEncoding(1251);
StreamReader sr = new StreamReader(ReceiveStream, encode);
string answer = sr.ReadToEnd();
sr.Close();
result.Close();
CookieContainer cookie = new CookieContainer();
foreach (string cook in cookieVal)
{
string[] cookie1 = cook.Split(new char[] { ';' });
if (cookie1.Length < 4)
continue;
cookie.Add(new Cookie(cookie1[0].Split(new char[] { '=' })[0], cookie1[0].Split(new char[] { '=' 
})[1],
cookie1[1].Split(new char[] { '=' })[1], cookie1[2].Split(new char[] { '=' })[1]));
}
HttpWebRequest req1 = (HttpWebRequest)HttpWebRequest.Create("http://www.people.md/");
req1.UserAgent = "Mozilla/4.0+(compatible;+MSIE+5.01;+Windows+NT+5.0)";
//Вот оно - важное дополнение.
req1.CookieContainer = cookie;
req1.Method = "GET";
HttpWebResponse result1 = (HttpWebResponse)req1.GetResponse();
Stream ReceiveStream1 = result1.GetResponseStream();
sr = new StreamReader(ReceiveStream1, encode);
string html = sr.ReadToEnd();
textBox3.Text = html;
result1.Close();


Модератор: Используйте тег code

Автор: dazy 26.6.2009, 18:38
А вы под fiddler'om посмотрите в чем разница между регистрацией через браузер и через софт.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)