Как имитировать запрос HTTP HTTP POST и результат захвата в С#
Допустим, у нас есть веб-страница с формой ввода поиска, которая передает данные на сервер через HTTP GET. Таким образом, средний сервер получает данные поиска через строки запроса. Пользователь может видеть URL-адрес и также может инициализировать этот запрос сам (через URL + строки запроса).
Мы все это знаем. Вот вопрос.
Что делать, если эта веб-страница передает данные на сервер через HTTP POST? Как пользователь может самостоятельно инициализировать этот запрос?
Ну, я знаю, как захватить HTTP POST (для чего нужны сетевые снифферы), но как я могу имитировать этот HTTP-запрос POST сам по себе в коде С#?
Ответы
Ответ 1
Вы можете посмотреть класс WebClient. Он позволяет отправлять данные на произвольный URL:
using (var client = new WebClient())
{
var dataToPost = Encoding.Default.GetBytes("param1=value1¶m2=value2");
var result = client.UploadData("http://example.com", "POST", dataToPost);
// do something with the result
}
Сгенерирует следующий запрос:
POST / HTTP/1.1
Host: example.com
Content-Length: 27
Expect: 100-continue
Connection: Keep-Alive
param1=value1¶m2=value2