我使用var content = Request.Content.ReadAsStringAsync().Result;
将数据发布到我的
<xml><OpenId><![CDATA[oX2XXXXXX-HFCR8O_BkI]]></OpenId>
<AppId><![CDATA[wxbcXXXXXX4d]]></AppId>
<IsSubscribe>0</IsSubscribe>
<ProductId><![CDATA[XXXXXX01]]></ProductId>
<TimeStamp>1416482878</TimeStamp>
<NonceStr><![CDATA[XXXXXXX]]></NonceStr>
<AppSignature><![CDATA[cff4XXXXXX8a513891f0]]></AppSignature>
<SignMethod><![CDATA[sha1]]></SignMethod>
</xml>
我已经完成了结构
public class PackageModal
{
public string OpenId { get; set; }
public string AppId { get; set; }
public string IsSubscribe { get; set; }
public string ProductId { get; set; }
public string TimeStamp { get; set; }
public string NonceStr { get; set; }
public string AppSignature { get; set; }
public string SignMethod { get; set; }
}
但在控制器中, [HttpPost]
public string PostNotify(PackageModal modal)
{
....
}
为什么modal
为空?我是否需要指定发布的数据是XML格式的?
答案 0 :(得分:0)
如果您发送的是JSON而不是XML,那会起作用吗?
如果没有,请尝试在您的方法中使用[FromBody],例如
public string PostNotify([FromBody]PackageModal modal)
{
....
}
这将告诉模型绑定器尝试从请求主体映射PackageModel。
希望有所帮助。
答案 1 :(得分:0)
[HttpPost]
public string ReturnXmlDocument(HttpRequestMessage request)
{
var doc = new XmlDocument();
doc.Load(request.Content.ReadAsStreamAsync().Result);
return doc.DocumentElement.OuterXml;
}
就是这样!