Итак, я знаю, как получить данные формы, используя Request.Form["abc"], но как мне получить тело?

Я использовал этот фрагмент в приведенной ниже ссылке:

https://gist.github.com/leggetter/769688

Но я не уверен, что передать в качестве ответа.

В PHP сделать это: file_get_contents('php://input'); и это так просто.

Примечания. Тип содержимого POST — application/json, а тело содержит строку json.

Заранее спасибо.

0
Aidon Hudson 7 Июл 2015 в 18:30
Пожалуйста, разместите код здесь, а не используйте ссылки на внешние сайты. Спасибо!
 – 
Conduit
7 Июл 2015 в 18:38

2 ответа

Если я правильно понял ваш вопрос, вот что вы можете сделать при публикации на ресурсе, для которого вы ожидаете ответа JSON:

HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://foo.com/bar/");
httpWebRequest.Method = WebRequestMethods.Http.Post;
httpWebRequest.Accept = "application/json";

HttpWebResponse response = (HttpWebResponse)httpWebRequest.GetResponse();
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = new StreamReader (receiveStream, Encoding.UTF8);

//store json in a variable for later use
string json = readStream.ReadToEnd();

//make sure to close
response.Close();
readStream.Close();

Конечно, этот подход является синхронным; но, в зависимости от ваших требований, это может быть просто прекрасно.

Поскольку в вашем вопросе не указано, нужно ли вам знать, как анализировать сам JSON, я не учел пример анализа JSON.

0
Lawrence 7 Июл 2015 в 21:07

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

using (StreamReader reader = new StreamReader(HttpContext.Current.Request.InputStream))
{
    string text = reader.ReadToEnd();
}
0
John Wu 7 Июл 2015 в 23:49