简介:
Content-Type(MediaType),便是Internet Media Type,互联网媒体类型;也叫作MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息.参考前端
response.Header里常见Content-Type通常有如下四种:java
application/x-www-form-urlencoded
multipart/form-data
application/json
text/xml
详解:
1.application/x-www-form-urlencodedajax
application/x-www-form-urlencoded是最多见的Content-Type,form表单默认提交方式对应的content-type.json
当action为get时候,浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个字串(name1=value1&name2=value2...),而后把这个字串追加到url后面,用?分割,加载这个新的url.
当action为post,且表单中没有type=file类型的控件时,Content-Type也将采用此编码方式,form数据将以key:value键值对的方式传给server.后端
表单提交:浏览器
<form action="/test" method="post"> <input type="text" name="name" value="zhangsan"> <input type="text" name="age" value="12"> <input type="text" name="hobby" value="football"> </form>
后台:app
import java.io.Serializable;前后端分离
public class Student implements Serializable {
private String name;
private String hobby;
private int age;ide
public String getName() { return name; } public void setName(String name) { this.name = name; } public String getHobby() { return hobby; } public void setHobby(String hobby) { this.hobby = hobby; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }
}
@RequestMapping(value = "/test", method = RequestMethod.POST)
public String test(Student student) {
System.out.println(student.getName());
return "/test1";
}
2.multipart/form-datapost
当post表单中有type=file控件时content-type会使用此编码方式.
表单提交:
<form action="/test" method="post" enctype="multipart/form-data"> <input type="text" name="name" value="zhangsan"> <input type="text" name="age" value="12"> <input type="text" name="hobby" value="football"> <input type="file" name="file1" </form>
后台:
@RequestMapping(value = "/test", method = RequestMethod.POST)
public String test(Student student,@RequestParam(value = "file1", required = false) MultipartFile file1) {
System.out.println(student.getName());
return "/test1";
}
3.application/json
随着json规范的流行,以及先后端分离趋势所致,该编码方式被愈来愈多人接受.
先后端分离后,前端一般以json格式传递参数,所以该编码方式较适合RestfulApi接口.
前端传参:
$.ajax({
url: '/test',
type: 'POST',
data: {
"name": "zhangsan",
"age": 12,
"hobby": "football"
},
dataType: "json",
success: function (date) {
} })
后台:
@RequestMapping(value = "/test", method = RequestMethod.POST)
public String test(@RequestBody Student student) {
System.out.println(student.getName());
return "/test1";
}
4.text/xml
XML-RPC(XML Remote Procedure Call)。它是一种使用 HTTP 做为传输协议,XML 做为编码方式的远程调用规范。
soapUI等xml-rpc请求的参数格式.
提交参数:
<arg0> <name>zhangsan</name> <age>12</age> <hobby>footbal</hobby> </arg0>
分类: java