我有Asp.net Core Swagger框架,我们都在工作中使用它 . 它只是用Swagger包装所有PITA的东西 . 它被设计成json in / json out . 现在,一个组只想在XML / XML中使用它 .
这是我到目前为止所做的:
1)将startup.cs更改为:
services.AddMvc().AddXmlSerializerFormatters();
2)在控制器方法上,更改为:
[Consumes("application/xml")]
[Produces("application/xml")]
3)在操作过滤器中,添加:
operation.Produces.Add("application/xml");
现在,在Test UI中,我只获得了输入和输出下拉列表的application / xml . 当我点击测试按钮时,我的请求正在反序列化,但测试页面会产生406错误 .
我还需要改变什么?
1 回答
客户端需要发送包含
application/xml
的Accepts
标头 . 您已将application/xml
设置为唯一可能的响应类型,如果客户端请求类似application/json
的内容,则服务器将无法再满足该请求 .