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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2013, 20:24   #1
stalsoft
Форумчанин
 
Регистрация: 09.06.2011
Сообщений: 147
По умолчанию Отправка мегО POST запроса

Добрый всем день/вечер/ночь/осень/зима/лето.

Предыстория: имеется ресурс (сайт) не мой, который написан с помощью jsf (JavaServer Faces). При открытии сайта (в браузере), скорей всего создается сессия, далее пользователю нужно ввести данные в тестовое поле, и нажать на сабмит, после чего страничка обновится (URL остается все тот же). После обновления странички, юзеру показываются запрашиваемые данные - результат поиска.

Проблема: хотелось бы программно отправлять пост запрос, но никак не могу это сделать. Пробовал через такие классы как WebClient, HttpWebRequest и так далее. Пробовал запихать параметр, с названием текстового поля и его значение, но ничего не получается!

Помогите пожалуйста! Заранее спасибо!
У женщин чары образуются из стрингов;
А у программистов наоборот - стринги образуются из чаров;
stalsoft вне форума Ответить с цитированием
Старый 09.01.2013, 22:52   #2
winhttp
Пользователь
 
Регистрация: 29.07.2012
Сообщений: 98
По умолчанию

что именно не получается? вы бы подробнее проблему описали, а то тут только гадать остается.
Смотрите через сниффер, что шлет браузер, и далее делайте такой же запрос с помощью HttpWebRequest. ничего сложного... ну почти ничего
Вот готовая функция из инета:
Код:
private static string POST(string Url, string Data)
{
  System.Net.WebRequest req = System.Net.WebRequest.Create(Url);
  req.Method = "POST";
  req.Timeout = 100000;
  req.ContentType = "application/x-www-form-urlencoded";
  byte[] sentData = Encoding.GetEncoding(1251).GetBytes(Data);
  req.ContentLength = sentData.Length;
  System.IO.Stream sendStream = req.GetRequestStream();
  sendStream.Write(sentData, 0, sentData.Length);
  sendStream.Close();
  System.Net.WebResponse res = req.GetResponse();
  System.IO.Stream ReceiveStream = res.GetResponseStream();
  System.IO.StreamReader sr = new System.IO.StreamReader(ReceiveStream, Encoding.UTF8);
  //Кодировка указывается в зависимости от кодировки ответа сервера
  Char[] read = new Char[256];
  int count = sr.Read(read, 0, 256);
  string Out = String.Empty;
  while (count > 0)
  {
    String str = new String(read, 0, count);
    Out += str;
    count = sr.Read(read, 0, 256);
  }
  return Out;
}
задаете адрес и значение запроса и все.

Последний раз редактировалось winhttp; 09.01.2013 в 22:55.
winhttp вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка POST запроса Besha07 PHP 8 18.10.2012 14:28
Отправка post-запроса С# galogen13 C# (си шарп) 3 23.04.2012 15:46
Отправка post-запроса С# galogen13 Помощь студентам 3 22.04.2012 03:20
Отправка запроса POST CreatiK Общие вопросы .NET 4 06.12.2010 21:15
Отправка POST запроса S@fer Работа с сетью в Delphi 0 29.01.2009 13:33