将XML发布到WebAPI方法始终为null
本文关键字:null 方法 WebAPI XML | 更新日期: 2023-09-27 18:23:35
我正在执行系统集成。客户文件说明
"消息传输时,HTTP CONTENT_TYPE标头设置为"application/x-www-form-urlencoded"。
<Message>
<Originator>ACME Solutions</Originator>
<Payload>
...message xml content goes here...
</Payload>
</Message>
我使用的是WebApi 2,post的默认控制器操作有的定义
public void Post([FromBody]string value)
每次我将此消息发布到我的web服务时,收到的值总是空
我尝试过创建一个定义相同的类,但它的属性总是为null。
public void Post([FromBody]Message value)
如果我将定义更改为更通用的定义,我可以从请求内容中提取Xml文档,但这不是我想要的方式,因为这会使单元测试变得困难。
public void Post(HttpRequestMessage request)
有人能告诉我哪里出了问题,以及为什么xml消息没有映射到我的类吗。
在将内容类型设置为application/x-www-form-urlencoded
时,还需要对正文进行编码以匹配。所以身体看起来不像这样:
<Message><Originator>ACME Solutions</Originator><Payload>message</Payload></Message>
看起来像这样:
value=%3CMessage%3E%3COriginator%3EACME+Solutions%3C%2FOriginator%3E%3CPayload%3Emessage%3C%2FPayload%3E%3C%2FMessage%3E