在MVC 4 WebApi中从POST读取http内容

时间:2013-02-14 15:28:54

标签: asp.net post asp.net-mvc-4 asp.net-web-api

我有一个使用WebApi的MVC 4应用程序。外部客户端正在POST它,我需要收集这些数据。我可以使用模型绑定来使用

public void Post([FromBody] Alert alert) { ... }

其中Alert是定义复杂类型的类。但是,我有一个案例,我想要阅读正文中的内容,即使我不知道结构是什么。那么我如何读取传入的POST请求的原始标题和正文。我试过这个:

public void Post(HttpContent content) { ... }

但是当POST到服务时,根本不会调用Post方法。

输入

由于

1 个答案:

答案 0 :(得分:2)

尝试绑定HttpRequestMessage而不是HttpContent。这应该有效,并且可以让您访问请求标题和正文。

public void Post(HttpRequestMessage request) { ... }

您还可以访问控制器上的Request属性,该属性应正确设置:

public void Post() { var content = Request.Content; }