Как смоделировать HTTP-запрос POST браузера и захватить результат в C # - PullRequest
17 голосов
/ 15 января 2010

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

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

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

Хорошо, я знаю, как перехватить HTTP POST (для этого и нужны сетевые анализаторы), но как мне самостоятельно смоделировать этот запрос HTTP POST в коде C #?

1 Ответ

24 голосов
/ 15 января 2010

Вы можете взглянуть на класс 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...