当前位置:   article > 正文

SpringMVC和Content-Type_mvc content

mvc content

1.  Content-Type

  MediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。

类型格式:type/subtype(;parameter)? type  

  1. 主类型,任意的字符串,如text,如果是*号代表所有;   
  2. subtype 子类型,任意的字符串,如html,如果是*号代表所有;   
  3. parameter 可选,一些参数,如Accept请求头的q参数, Content-Type的 charset参数。   

 例如: Content-Type: text/html;charset:utf-8;

 

 常见的媒体格式类型如下:

  •     text/html : HTML格式
  •     text/plain :纯文本格式      
  •     text/xml :  XML格式
  •     image/gif :gif图片格式    
  •     image/jpeg :jpg图片格式 
  •     image/png:png图片格式

   以application开头的媒体格式类型:

  •    application/xhtml+xml :XHTML格式
  •    application/xml     : XML数据格式
  •    application/atom+xml  :Atom XML聚合格式    
  •    application/json    : JSON数据格式
  •    application/pdf       :pdf格式  
  •    application/msword  : Word文档格式
  •    application/octet-stream : 二进制流数据(如常见的文件下载)
  •    application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)

   另外一种常见的媒体格式是上传文件之时使用的:

  •     multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式

     以上就是我们在日常的开发中,经常会用到的若干content-type的内容格式。

 

2.SpirngMVC和媒体类型

在不设置的情况下,springmvc默认媒体类型是application/x-www-form-urlencoded。(前端ajax不设置content-type,也默认pplication/x-www-form-urlencoded,就可以传递)

使用@RequestParam,使用application/x-www-form-urlencoded.

如果想接受application/json,需要加@RequestBody注解,@RequestBody用来处理媒体类型不是application/x-www-form-urlencoded的情况,r如application/json 

 

@RequestMapping中指定consumes,可以用来过滤,比如下面,如果不是json和x-www-form-urlencoded,就无法请求到接口,会报错有提示信息;(如果不过滤,前后端媒体类型不对应的情况下,请求可以进入接口,只是传参失败)

@PostMapping(value = "/login/msg", consumes = {MediaType.APPLICATION_FORM_URLENCODED_VALUE, MediaType.APPLICATION_JSON_UTF8_VALUE, MediaType.APPLICATION_JSON_VALUE})

如果consumes指定application/json ,参数不用@RequestBody,请求可以进入接口,但传参无法成功。

@RequestBody适合参数是对象、不是基本数据类型的情况,否则会有编码问题,而且接口参数只有一个基本类型却使用对象接受,也没有必要。

 

转载前后端媒体类型的实验:

https://www.jianshu.com/p/b21555b84c89

https://blog.csdn.net/u014044812/article/details/78455053

用postman发起application/json:

https://blog.csdn.net/hao134838/article/details/71311957

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/63702
推荐阅读
相关标签
  

闽ICP备14008679号