如何使用.NET C#处理和从POST获取正文?

时间:2015-07-07 15:30:37

标签: c# asp.net .net post

所以,我知道如何使用Request.Form["abc"]来获取表单数据但是如何通过将主体取出来?

我在以下链接中使用了此代码段:

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

但是,我不确定将什么传递给响应。

在PHP中执行此操作:file_get_contents('php://input');并且就这么简单。

注意:POST的内容类型是application / json,正文包含json字符串。

提前致谢。

2 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,那么在发布到您希望获得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解析的例子。

答案 1 :(得分:0)

您需要与此类似的代码才能将原始请求主体读入字符串变量。

using (StreamReader reader = new StreamReader(HttpContext.Current.Request.InputStream))
{
    string text = reader.ReadToEnd();
}