我有一个Web API控制器,它有一个从请求体接收数据的POST方法,它所做的就是将其发送到另一个Web服务,因此不需要对数据进行反序列化。如何禁用由Web API完成的自动反序列化?
public IHttpActionResult Post([FromBody]string data)
{
//Post with http client...
}
带此签名的数据到达时为空
检查这个:
public async Task<HttpResponseMessage> Post(HttpRequestMessage request)
{
var data = await request.Content.ReadAsStringAsync();
// do stuff with the content
}
关于解决方案的更多信息:http://bizcoder.com/posting-raw-json-to-web-api
以字符串(序列化格式)发送对象。例如
YourMethod([FromBody]string json)
像这样读取请求内容:
public Task<IHttpActionResult> Post() {
var str = await Request.Content.ReadAsStringAsync();
}