如何使用.net c#处理和获取POST的主体

本文关键字:获取 POST 主体 处理 何使用 net | 更新日期: 2023-09-27 18:01:37

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

我在下面的链接中使用了这个代码片段:

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

但是,我不确定传递什么作为响应。

在PHP中这样做:file_get_contents('php://input');,它就像那样简单。

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

如何使用.net c#处理和获取POST的主体

如果我正确理解了你的问题,以下是当你发布到一个期望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解析的示例

您需要类似的代码来将原始请求正文读入字符串变量。

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