WebApi接收不到参数解决方法

[HttpPost]

public HttpResponseMessage PunchoutRequest()

{ try

{ PunchOutSetupRequest punchoutRequest = new PunchOutSetupRequest(); //接收到xml数据并用XDocument加载 XDocument xd = XDocument.Load(Request.Content.ReadAsStreamAsync().Result);

#region解析收到的XML并存入实体类中 //填充Header中的数据

List<XElement> fromCredentialNodes = xd.Root.Element("Header").Element("From").Elements().ToList(); AribaPunchoutMessageFunc.SetHeaderInfoToDTO(punchoutRequest, fromCredentialNodes, "From"); List<XElement> toCredentialNodes = xd.Root.Element("Header").Element("To").Elements().ToList(); AribaPunchoutMessageFunc.SetHeaderInfoToDTO(punchoutRequest, toCredentialNodes, "To");

List<XElement> senderCredentialNodes = xd.Root.Element("Header").Element("Sender").Elements().ToList();

AribaPunchoutMessageFunc.SetHeaderInfoToDTO(punchoutRequest, senderCredentialNodes, "Sender"); //填充Request中的数据 XElement RequestRoot = xd.Root.Element("Request").Element("PunchOutSetupRequest"); AribaPunchoutMessageFunc.SetRequestInfoToDTO(punchoutRequest, RequestRoot); //将发过来的请求信息保存起来 AribaPunchoutMessageFunc.BuyerRequest = punchoutRequest;

#endregion

//读取Response文档模板并赋值

XmlDocument xd2 = new XmlDocument(); xd2.Load(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ResponseTemplate.xml")); AribaPunchoutMessageFunc.SetResponseCXML(xd2); //返回一个流。里面保存xml数据 HttpResponseMessage result;

using (MemoryStream stream = new MemoryStream()) { xd2.Save(stream);

result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(stream.ToArray()) };

}

return result;

}

catch (Exception e) {

throw new Exception(e.ToString());

}

}

}

posted @ 2020-09-09 14:43  小小程序猿啦  阅读(523)  评论(0)    收藏  举报