10 | Spring Web Header 解析常见错误
案例 1:接受 Header 使用错 Map 类型
- 深入了解
- 翻译
- 解释
- 总结
Spring Web开发中Header相关的常见错误案例包括接受Header使用错Map类型和错认为Header名称首字母可以一直忽略大小写。在解析Header时,直接获取Header是可以忽略大小写的,但从接收过来的Map中获取Header是不能忽略大小写的。针对第一个案例,要完整接收到所有的Header,不能直接使用Map而应该使用MultiValueMap或HttpHeaders。对于第二个案例,需要注意Header名称在任何情况下并不都可以不区分大小写来获取值。文章通过具体案例分析和问题修正,帮助读者理解Spring Web开发中Header解析的常见错误及解决方法。 文章通过具体案例分析和问题修正,帮助读者理解Spring Web开发中Header解析的常见错误及解决方法。文章通过具体案例分析和问题修正,帮助读者理解Spring Web开发中Header解析的常见错误及解决方法。 在Spring Boot使用内嵌Tomcat容器时,添加Header会执行关键步骤。然而,设置Content-Type作为特殊Header时,实际返回的Content-Type是根据实际的返回值及类型等多个因素来决定的。针对这个问题,可以修改请求中的Accept头或标记返回类型,以控制最终协商的结果为JSON。通过这节课的学习,读者了解到了在Spring解析Header中的一些常见错误及其背后的深层原因,包括接收Header使用错Map类型和错认为Header名称首字母可以一直忽略大小写。希望读者以后在解析Header时会更有信心。 思考题提到在Controller层中随意自定义常用头有时候会失效,引发读者思考这个结论是否普适,即在使用其他内置容器或者在其他开发框架下,是否也会存在一样的问题。
《Spring 编程常见错误 50 例》,新⼈⾸单¥59
全部留言(4)
- 最新
- 精选
- 雨落~紫竹这章所有问题都是不规范导致的2022-06-202
- 天天向上请教下什么情况下需要修改content type2022-10-01归属地:浙江
- 星期八案例3中“决定用哪一种 MediaType 返回” header有值,为什么会走到下面去选择MediaType#TEXT_PLAIN?2022-03-13
- 虹炎案例2说:1. 存取 Map 的 Header 是没有忽略大小写的 然后给出了源码: private void findNext() { next=null; for(; pos< size; pos++ ) { next=headers.getName( pos ).toString(); for( int j=0; j<pos ; j++ ) { if( headers.getName( j ).equalsIgnoreCase( next )) { // duplicate. next=null; break; } } if( next!=null ) { // it's not a duplicate break; } } // next time findNext is called it will try the // next element pos++; } 然后说:返回结果并没有针对 Header 的名称做任何大小写忽略或转化工作。没看懂。其他小伙伴看懂了吗? 这里说的返回结果指什么? if( headers.getName( j ).equalsIgnoreCase( next )) 这行代码不是忽略了大小写了吗?2021-05-164