asp.net - 在 ASP.NET 中读取请求正文

标签 asp.net rest httpwebrequest

如何在 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/

相关文章:

rest - 如何在 spring boot 中使用 "web request by spring mvc"和 "rest by jersey"

java - 将 JSON 发布到 Controller 返回 400 Bad Request

c# - 在 ASHX 中检索 cookie 值

c# - 在 C# 中防止 SQL 注入(inject) asp.net

c# - post方法中ViewBag值变成null?

java - 通过 JAX-RS 的 RESTful,@QueryParam 和@Consume 的常见用法是什么?

c# - IIS7.5 WCF 服务 - HTTP 错误 401.3(即使在添加 IIS_IUSRS 之后)

c# - 发送 Async Post WebRequest,我得到一个 (411) Length Required

c# - 正确修复第一次请求时 HttpWebRequest GetResponse 延迟

c# - CookieContainer 的 HttpWebRequest 操作超时