.net core 杂记:WebAPI的XML请求和响应

Posted qiuguochao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net core 杂记:WebAPI的XML请求和响应相关的知识,希望对你有一定的参考价值。

一般情况下,restfult api  进行数据返回或模型绑定,默认json格式会比较常见和方便,当然偶尔也会需要以XML格式的要求

对于返回XML,普通常见的方式就是在每个aciton方法进行诸如XmlFormatter此类的序列化处理,

而对于接收XML,则是进行一些额外的XML解析操作或反序列化处理。

下面记录和学习较为便捷的WebAPI的XML请求和响应处理使用,不喜勿喷,有错请指教。

.net core 版本:2.2

添加XML格式支持

1、安装 Microsoft.AspNetCore.Mvc.Formatters.Xml NuGet 包

2、再Startup.ConfigureServices 中调用 AddXmlSerializerFormatters 来配置对 System.Xml.Serialization.XmlSerializer的 实现。

public void ConfigureServices(IServiceCollection services)

    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2).AddXmlSerializerFormatters();

响应XML数据

想再Action层面、Controller层面或全局范围内指定特定操作响应XML格式,只需添加 [Produces] 过滤器,会自行处理成xml格式响应,无需再进行其他繁杂的处理步骤

如下指定Action方法响应XML格式:

[HttpGet("getstudent/id")]
[Produces("application/xml")]
public Student GetStudent(int id)

    var obj = new Student
    
        Age = 12,
        Name = "123123"
    ;
    return obj;

将直接返回如下:

技术图片

 XML请求

 XML格式数据请求则使用[Consumes]

 如下代码:

下面示例以XML格式请求,程序会自动解析并绑定Student模型类,返回此对象的json格式(webapi 默认返回的格式)

[HttpPost("poststudent")]
[Consumes("application/xml")]
public Student PostStudent(Student obj)

    return obj;

结果如下:

技术图片

 

以上是关于.net core 杂记:WebAPI的XML请求和响应的主要内容,如果未能解决你的问题,请参考以下文章

.net core 杂记:日记记录

Core下简易WebApi

.NET Core Web API理解

如何在 .NET Core WebAPI 中自动记录每个请求?

模型绑定不适用于 ASP.NET Core 2 WebAPI 中的 POST 请求

.Net Core WebAPI 利用 IActionFilter 实现请求缓存