首页
学习
活动
专区
圈层
工具
发布

SpringBoot中的内容协商,颠覆你的认知

比如:服务器端可以响应 json 和 xml 格式的数据,而浏览器发送请求的时候告诉服务器说:我能够接收 html 和 json 格式的数据,那么最终会返回二者都能够支持的类型:json 格式的数据。...5.1、解释 简单点理解,媒体类型就是用来表示内容的格式,比如可以用来表示 http 请求体和响应体内容的格式。...格式数据 application/json; charset=UTF-8 表示 json 格式数据,后面跟了一个编码参数 text/plain 表示纯文本格式内容 text/html 表示 html...格式内容 text/html;charset=utf-8 表示 html,utf-8 编码 application/json; q=1 表示 json 格式数据,有个 q 参数,这个参数比较特殊,表示优先级...: Content-Type: application/xhtml+xml;charset=UTF-8 如下图,确实和浏览器中的结果一致 8、服务端可响应的媒体类型 8.1、服务端有 3 种方式可以指定响应的媒体类型

1.5K41
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【小家Spring】Spring MVC容器的web九大组件之---HandlerAdapter源码详解---HttpMessageConverter 消息转换器详解

    它对请求、响应都起到了非常关键的作用~ 为何需要消息转换器 HttpMessageConverter是用来处理request和response里的数据的。..../json和application/*+json application/json和application/*+json 默认编码UTF-8 MappingJackson2XmlHttpMessageConverter...既然它是HttpMessageConverter,所以铁定和HttpMessage有关,因为此接口涉及的内容相对来说比较偏底层,因此本文只在接口层面做简要的一个说明。...后面会是重磅内容~ ---- HttpMessageConverter接口是Spring3.0之后新增的一个接口,它负责将请求信息转换为一个对象(类型为T),并将对象(类型为T)绑定到请求方法的参数中或输出为响应信息...// 类似这种形式就是我们自己指定了编码:application/json;charset=UTF-8 Charset charset = (contentType !

    3.3K11

    SpringMVC请求参数和响应结果全局加密和解密

    第三方传输(包括请求和响应)数据报文包括三个部分: 1、timestamp,long类型,时间戳。 2、data,String类型,实际的业务请求数据转化成的Json字符串再进行加密得到的密文。...PS:上面提到的几个需要修改请求参数、请求头等是因为特殊场景的定制,所以如果无此场景可以直接看下面的"单纯的Json请求参数和Json响应结果"小节。流程大致如下: ?...这里使用了标识接口用于决定请求参数或者响应结果是否需要加解密,也就是只需要在HttpMessageConverter中判断请求参数的类型或者响应结果的类型是否加解密标识接口的子类: @RequiredArgsConstructor...主要需要判断请求参数的类型和返回值的类型,从而判断是否需要进行加解密。...单纯的Json请求参数和Json响应结果的加解密处理最佳实践 一般情况下,对接方的请求参数和响应结果是完全规范统一使用Json(ContentType指定为application/json,使用@RequestBody

    2.2K20

    解析Spring中的ResponseBody和RequestBody

    @ResponseBody的使用 由于@ResponseBody和@RequestBody的内部实现是同样的原理(封装请求和封装响应),所以本文以@ResponseBody为主要入手点,理解清楚任何一者...在上一节中,我们未显示指定produces值时,其实就隐式的表明,支持XML形式,JSON形式的媒体类型响应。...下面的流程图可以更好方便我们的理解: ? 对于添加了@RequestBody和@ResponseBody注解的后端端点,都会经历由HttpMessageConverter进行的数据转换的过程。...自定义HttpMessageConverter 前面已经提及了消息转换器是通过判断媒体类型来调用响应的转换类的,不禁引发了我们的思考,如果我们遇到了不常用的MediaType,或者自定义的MediaType...先定义我们的需求,自定一个MediaType:application/toString,当返回一个带有@ResponseBody注解的实体类时,将该实体类的ToString作为响应内容。

    7K171

    Asp.Net Web API 2第十四课——Content Negotiation(内容协商)

    在HTTP中内容协商的主要机制是以下请求报头: Accept:响应可接收的媒体类型,如“application/json”、“application/xml”,或者自定义媒体类型,如“application...Accept-Charset:可接收的字符集,如“UTF-8”或“ISO 8859-1”。 Accept-Encoding:可接收的内容编码,如“gzip”。...Web API提供了XML和JSON的媒体格式化器,因而你可以创建自定义的格式化器,以支持其它媒体类型。...用于响应的媒体类型 如果未找到格式化器,方法返回null,而客户端会接收到一个HTTP的406(不可接收的)错误。...如果未找到匹配,内容协商器会尝试匹配请求体的媒体类型(有请求体时)。例如,如果请求含有JSON数据,内容协商器会找到JSON格式化器。

    96210

    SpringMVC学习笔记(五) --- 异常处理、图片上传、Json数据交互、RESTful支持、拦截器

    与controller形参一致: 商品图片 3、Json数据交互 Ⅰ、@RequestBody 作用: @RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter...接口将读到的内容转换为json、xml等格式的数据并绑定到controller方法的参数上。...该注解用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过Response响应给客户端。...步骤二:配置json转换器 在注解适配器中加入messageConverters 注意:如果使用 则不用定义上边的内容。...}/item/editItemSubmit_RequestJson.action", contentType:"application/json;charset=utf-8", data:

    80630
    领券