一個項目中,廠商要傳過來XML的body內容。之前做的項目都是傳的json,然后用Json對應的實體就可以接收了
現在傳過來就不知道后台用什么樣的方法接收了。上代碼
[HttpPost] public async Task<ActionResult> SOConfirm(XmlDocument doc)//string appid, string token, { ActionResult result = null;try { //解析下XML-->json
//下面標紅的進行了二次的轉換,並不是直接解析xml的,因為,直接用的話,
//轉出來的json會有就給我解出來"#whitespace","#text"等這玩意
//二次轉后就不會有那些個異樣的字符串
XmlDocument doctext = new XmlDocument(); doctext.LoadXml(doc.InnerXml); string json = Newtonsoft.Json.JsonConvert.SerializeXmlNode(doctext); var j = JObject.Parse(json);
if (string.IsNullOrEmpty(j["request"]["orderDetails"]["detail"].ToString())) { throw new ECOrderException { ErrorCode = "SOConfirmVwms_02", TransMessage = "訂單明細不能為空" }; } //存到sql的必要的數據 string deliveryOrderCode = j["request"]["deliveryOrder"]["deliveryOrderCode"].ToString(); string warehouseCode = j["request"]["deliveryOrder"]["warehouseCode"].ToString();
在startUp類中添加服務:
services.AddMvc()
.AddXmlSerializerFormatters();
一定要注冊服務,不注冊服務上面的參數,XmlDocument 根本接收不到值