在ASP.NET中如何读取请求体?我正在使用Firefox的REST Client附加组件来形成对我在本地托管的网站上的资源的GET请求,而在Request Body中,我只是将字符串“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.
所以也许你正在做的事情正确,但是你必须POST数据才能有一个消息体?
更新
响应您的评论,最“正确”的RESTful方式是将每个值作为自己的参数发送:
site.com/MyController/MyAction?id=1&id=2&id=3...
那么如果你给它一个同名的数组参数,你的动作就会自动绑定这些参数:
public ActionResult MyAction(int[] id) {...}
或者如果你是一个虐待者,你可以尝试一次从Request.QueryString中提取一些值.