Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2009, 15:59   #1
3dgraph
Пользователь
 
Регистрация: 02.08.2008
Сообщений: 11
По умолчанию Проблема с HttpWebRequest и HttpWebResponse

необходимо авторизоваться на сайте для этого использовал 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();

Последний раз редактировалось MaTBeu; 26.06.2009 в 18:26.
3dgraph вне форума Ответить с цитированием
Старый 13.07.2009, 14:44   #2
neomichi
Пользователь
 
Регистрация: 26.03.2009
Сообщений: 43
По умолчанию

ну а почему не проходит? что говорит сервер? Ответ какой приходит?=)
укажите УРЛ скрипта , надо там сначало посмотреть)
neomichi вне форума Ответить с цитированием
Старый 15.07.2009, 11:20   #3
IICuX123
Пользователь
 
Регистрация: 24.02.2009
Сообщений: 18
По умолчанию

Честно говоря с помощью этих классов авторизация на сайт не пройдет
Вы просто не увидите контент самой страницы, нету взаимодействия с браузером.

Рекомендую загружать вашу ссылку и вставлять туда JavaScript, пример см. ниже, пользуюсь сам, очень нравится, быстро удобно и стабильно.

<form action=./login.php name=login><input name=Взависимости от имени инпута самого на сайте type=hidden value=pass><input name=Взависимости от имени инпута самого на сайте type=hidden vale=nick></form> <script language ="JavaScript>document.login.submit( );</script>

Собственно все=)
IICuX123 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
HttpWebRequest и HttpWebResponse Bbo Общие вопросы .NET 1 14.05.2009 15:51
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37