P8 写代码:内容协商
对第七章讲的部分,进行编码。
在默认情况下,webApi只用json作为输入和输出的格式化器
返回的数据还是json
返回的类型是json
上面的headers才是我们请求的,下面的headers是我们返回的。也是响应的
把接收的类型改成xml,发送请求,后端返回的还是json格式。哪怕我们右边下拉切换成xml 其实返回的还是json格式的
正常情况不支持的格式应该是要返回406状态码的。但是.net core默认不支持,需要我们手动的配置一下
这里默认是false。就是当我请求服务端json格式的时候,如果服务端默认的就是xml格式,而且仅仅支持xml格式,那么它就会把xml格式返回回去。并且不会返回406状态码。所以默认值就是false
我们把这个值改成True。如果请求的类型和服务器所支持的类型不一致的情况下,就会返回406状态码
响应的header 的一种处理方法。
另外一种方法就是让他也支持xml格式。默认集合里面已经有json格式了。这里再把xml也添加进去。
默认是json的
在勾线xml格式
返回的类型也变成xml了
修改默认的格式
就是把集合的顺序调整一下,我们使用Insert方法再第0个位置加上xml格式
setup.OutputFormatters.Add(new XmlDataContractSerializerOutputFormatter());
没有勾选,默认返回了xml格式
响应的还是xml。所以说顺序决定了默认的格式。
对应的还有input的Formatters类型。实际上这是core 3.0之前的写法。
在.net core 3.0后有一个简单的写法。这个方法就会添加xml格式化器。应该是输入和输出的都会添加。
这样就可以用这种简单的方法了
运行程序再试试
勾选去掉。默认的还是json格式
如果写了一个不支持的header类型。随便乱写的一个格式
本人电脑上测试
加上输出xml和 请求头里面类型是设置为application.xml 都没有什么作用!!!!!
结束