我有一个遗留系统(用ColdFusion编写)发布到我的RESTful MVC应用程序,我试图访问已发布的参数。
我被建议在遗留系统中将内容类型标头设置为application/x-www-form-urlencoded
,这应该意味着controllerContext.HttpContext.Request.Form.AllKeys
包含已发布的参数,但事实并非如此。
其他Stack Overflow帖子建议阅读controllerContext.HttpContext.Request.InputStream
,但我想知道是否有不同/更简单的方法。
答案 0 :(得分:1)
仅将请求Content-Type标头设置为application/x-www-form-urlencoded
可能不够。客户端还需要尊重此内容类型,这意味着POST请求的主体必须如下所示:
param1=value1¶m2=value2¶m3=value3&...
现在,您将能够使用Request.Form["param1"]
检索单个值,或者只是使用视图模型并让控制器操作将此视图模型作为参数,这样您就不需要手动检索这些值来自请求的参数。
如果客户不遵守规范,您唯一的机会是阅读Request.InputStream
并手动解析。