微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

api 不能接受 XML

如何解决api 不能接受 XML

我使用的是 .netCore 3.1,这是我第一次处理 XML。 我正在尝试读取 xml 数据,并解析它们然后将它们保存到数据库中。 我有一个名为 ExternalAppointment 的模型,我想将数据映射到该模型。 这是我的控制器:

    [HttpPost("xml")]
    public async Task<ActionResult<Appointment>> XMLContent([FromBody] ExternalAppointment xmldata)
    {
        //stuff.
    }

这是我的startup.cs

        services.Configure<RequestLocalizationoptions>(options =>
        {
            //some code
            services.AddMvc()
            .AddXmlSerializerFormatters();
            //rest of code
        }

这是我传递给邮递员的 xml:

    <?xml version="1.0" encoding="UTF-8"?>
<event>
   <business_owner_id>1</business_owner_id>
   <business_owner_name>Doctor's lab</business_owner_name>
   <business_owner_phone_number>44556699887</business_owner_phone_number>
   <customer_email>example@example.com</customer_email>
   <customer_phone_number>1122336655</customer_phone_number>
   <date_and_time>16/12/2021 20:45:00</date_and_time>
   <location>21 jump street</location>
   <service_name>PCR</service_name>
</event>

而且我似乎无法完成请求,我不断收到 405 响应。 我尝试在控制器之前添加 [consumes("application/xml")] 装饰器,但没有帮助。

有什么想法吗?

解决方法

这是我使用 XElement 的演示,它可以工作:

启动:

 public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllersWithViews();
            services.AddMvc()
            .AddXmlSerializerFormatters();
        }

API 控制器:

 [Route("api/[controller]")]
[ApiController]
public class ApiController : ControllerBase
{
    [HttpPost("xml")]
    public IActionResult XMLContent([FromBody] XElement xmldata)
    {
        return Ok();
        //stuff.
    }
}

邮递员(您需要确保使用邮递请求): enter image description here

结果: enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。