如何在 ASP.NET 中读取请求正文?我正在使用 Firefox 的 REST 客户端插件在我在本地托管的网站上形成对资源的 GET 请求,在请求正文中,我只是将字符串“test”放在上面以尝试阅读它服务器。
在服务器代码(这是一个非常简单的 MVC 操作)中,我有这个:
var reader = new StreamReader(Request.InputStream);
var inputString = reader.ReadToEnd();
但是当我调试它时,
inputString
总是空的。我不确定如何(例如在 FireBug 中)确认请求正文确实被正确发送,我想我只是假设附加组件正确地执行了该操作。也许我读错了值?
最佳答案
也许我记错了我的学业,但我认为 GET 请求实际上并没有实体。 This page states .
The HTML specifications technically define the difference between "GET" and "POST" so that former means that form data is to be encoded (by a browser) into a URL while the latter means that the form data is to appear within a message body.
所以也许你做的事情是正确的,但你必须发布数据才能有一个消息体?
更新
针对您的评论,最“正确”的 RESTful 方式是将每个值作为其自己的参数发送:
site.com/MyController/MyAction?id=1&id=2&id=3...
然后,如果您给它一个同名的数组参数,您的操作将自动绑定(bind)这些:public ActionResult MyAction(int[] id) {...}
或者,如果您是受虐狂,您可以尝试将值从 Request.QueryString
中提取出来。一次一个。
关于asp.net - 在 ASP.NET 中读取请求正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7274544/