如何从 Postman 将 XML 传递到 ASP.Net 核心中的 Web API
how to pass XML to Web API in ASP.Net core from Postman
我有 ASP.Net Core 2.1
应用程序,我的 API 控制器如下所示。
[HttpPost]
public async Task<IActionResult> Post([FromBody]XElement recurlyXml)
{
var node = _xmlUtil.GetFirstNode(recurlyXml);
//do something
return Ok();
}
来自邮递员,我用以下有效载荷调用此 API。
<updated_subscription_notification>
<subscription>
<plan>
<plan_code>1dpt</plan_code>
<name>Subscription One</name>
</plan>
<uuid>292332928954ca62fa48048be5ac98ec</uuid>
</subscription>
</updated_subscription_notification>
但是在单击发送(命中)时,它会抛出 400 Bad Request。我也尝试在顶部添加以下行
<?xml version="1.0" encoding="UTF-8"?>
但还是一样的400。
如何将 XML 传递给 API 控制器?
谢谢!
ASP.NET内核默认不支持XMLserialization/deserialization。您必须明确启用:
services.AddMvc()
.AddXmlSerializerFormatters();
@mason 在评论中的观点仍然是相关的。请求正文的 type 实际上是并且应该是无关紧要的。你永远不应该直接绑定到 XElement
、JObject
等东西。相反,你创建一个 class 来表示你的 XML document/JSON 对象的结构,并且绑定到那个。您在操作方法中实际绑定的内容与第三方客户端发送的内容无关。
如果请求是 XML、JSON 或任何其他内容,您会独立地收到作为 strem 的请求。收到的数据由您在这座桥的另一端解码,并转换为您想要的任何对象。
他们如何发送并不重要,重要的是你用它做什么。
我有 ASP.Net Core 2.1
应用程序,我的 API 控制器如下所示。
[HttpPost]
public async Task<IActionResult> Post([FromBody]XElement recurlyXml)
{
var node = _xmlUtil.GetFirstNode(recurlyXml);
//do something
return Ok();
}
来自邮递员,我用以下有效载荷调用此 API。
<updated_subscription_notification>
<subscription>
<plan>
<plan_code>1dpt</plan_code>
<name>Subscription One</name>
</plan>
<uuid>292332928954ca62fa48048be5ac98ec</uuid>
</subscription>
</updated_subscription_notification>
但是在单击发送(命中)时,它会抛出 400 Bad Request。我也尝试在顶部添加以下行
<?xml version="1.0" encoding="UTF-8"?>
但还是一样的400。
如何将 XML 传递给 API 控制器?
谢谢!
ASP.NET内核默认不支持XMLserialization/deserialization。您必须明确启用:
services.AddMvc()
.AddXmlSerializerFormatters();
@mason 在评论中的观点仍然是相关的。请求正文的 type 实际上是并且应该是无关紧要的。你永远不应该直接绑定到 XElement
、JObject
等东西。相反,你创建一个 class 来表示你的 XML document/JSON 对象的结构,并且绑定到那个。您在操作方法中实际绑定的内容与第三方客户端发送的内容无关。
如果请求是 XML、JSON 或任何其他内容,您会独立地收到作为 strem 的请求。收到的数据由您在这座桥的另一端解码,并转换为您想要的任何对象。 他们如何发送并不重要,重要的是你用它做什么。