1

我有一个遗留系统(用 ColdFusion 编写)发布到我的 RESTful MVC 应用程序,我试图在其中访问发布的参数。

有人建议我application/x-www-form-urlencoded在旧系统中将 content-type 标头设置为,这应该意味着controllerContext.HttpContext.Request.Form.AllKeys包含发布的参数,但事实并非如此。

其他 Stack Overflow 帖子建议阅读,controllerContext.HttpContext.Request.InputStream但我想知道是否有不同/更简单的方法。

4

1 回答 1

1

仅将请求 Content-Type 标头设置为application/x-www-form-urlencoded可能还不够。客户端还需要尊重这种内容类型,这意味着 POST 请求的主体必须如下所示:

param1=value1&param2=value2&param3=value3&...

现在,您将能够使用Request.Form["param1"]或仅通过使用视图模型并让您的控制器操作将此视图模型作为参数来检索单个值,这样您就不需要从请求中手动检索这些参数。

如果客户不遵守规范,您唯一的机会就是Request.InputStream手动阅读并解析它。

于 2013-02-19T11:17:37.230 回答