在ASP.NET中读取请求主体

Dav*_*vid 12 asp.net rest httpwebrequest

如何读取ASP.NET中的请求主体?我正在使用Firefox的REST客户端插件为我在本地托管的网站上的资源形成GET请求,而在请求正文中我只是将字符串"test"试图读取它服务器.

在服务器代码(这是一个非常简单的MVC动作)我有这个:

var reader = new StreamReader(Request.InputStream);
var inputString = reader.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)

但是当我调试它时,inputString总是空的.我不确定如何(例如在FireBug中)确认请求正文确实正确发送,我想我只是假设附加组件正确地执行了此操作.也许我读错了价值?

Str*_*ior 4

也许我记错了我的学校教育,但我认为 GET 请求实际上没有主体此页指出

HTML 规范在技术上定义了“GET”和“POST”之间的区别,因此前者意味着表单数据将(由浏览器)编码到 URL 中,而后者意味着表单数据将出现在消息正文中。

那么也许您的做法是正确的,但您必须 POST 数据才能获得消息正文?

更新

为了回应您的评论,最“正确”的 RESTful 方式是将每个值作为其自己的参数发送:

site.com/MyController/MyAction?id=1&id=2&id=3...
Run Code Online (Sandbox Code Playgroud)

然后,如果您给它一个同名的数组参数,您的操作将自动绑定它们:

public ActionResult MyAction(int[] id) {...}
Run Code Online (Sandbox Code Playgroud)

Request.QueryString或者,如果你是一个受虐狂,你也许可以尝试一次从一个人身上提取价值观。