Подтвердить что ты не робот

Как имитировать запрос HTTP HTTP POST и результат захвата в С#

Допустим, у нас есть веб-страница с формой ввода поиска, которая передает данные на сервер через HTTP GET. Таким образом, средний сервер получает данные поиска через строки запроса. Пользователь может видеть URL-адрес и также может инициализировать этот запрос сам (через URL + строки запроса).

Мы все это знаем. Вот вопрос.

Что делать, если эта веб-страница передает данные на сервер через HTTP POST? Как пользователь может самостоятельно инициализировать этот запрос?

Ну, я знаю, как захватить HTTP POST (для чего нужны сетевые снифферы), но как я могу имитировать этот HTTP-запрос POST сам по себе в коде С#?

4b9b3361

Ответ 1

Вы можете посмотреть класс WebClient. Он позволяет отправлять данные на произвольный URL:

using (var client = new WebClient())
{
    var dataToPost = Encoding.Default.GetBytes("param1=value1&param2=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&param2=value2