考虑了好久,总是感觉自己的技术太差,写博客会误导别人,最终还是决定写写看了。如果有地方不足或是错误,请大牛不吝赐教。
首先介绍一下HTTP协议。
HTTP:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。HTTP是一个客户端和服务端端请求和应答的标准(TCP)。一个HTTP请求大体上可以划分三个部分: 请求行、请求头、请求体。请求行包括三部分内容,第一请求的方法(这点很重要,在你以后的开发中这无时无刻的在你身边),HTTP请求方法有很多,常见的主要有POST、GET、PUT、DELETE,今天主要讲的是POST请求。第二URL地址,第三HTTP协议版本。请求头:包含的内容比较多,简要的说几个,Content-Type(这个也是今天主要说的)用来指定不同格式的请求信息,Connection连接方式,主要是长连接keep-alive,还有很多内容,有兴趣的可以自己深入了解一下。请求体:主要是放我们要和服务端打交道的数据。
然后介绍三种常见的POST提交的提交数据
3、application/json
也是很常见的一种,在实际开发中和测试中使用比较平凡因为现在JSON太流行了现在。现在越来越多的人把它作为请求头,用来告诉服务端消息主体是序列化后的 JSON 字符串。
Use the @RequestParam annotation to bind request parameters to a method parameter inyour controller.Parameters using this annotation are required by default, but you can specify that aparameter is optional by setting @RequestParam's required attribute to false(e.g., @RequestParam(name="id", required=false)).这是官方解释。也就是说后台通过HTTP请求传过来的参数,可以通过@RequestParam绑定到后台参数。@RequestParam常用来绑定简单的数据
The@RequestBody
method parameter annotation indicates that a method parameter shouldbe bound to the value of the HTTP request body.
POST方式提交的请求:
Content-type:
1、application/x-www-form-urlencoded:@RequestBody不是必须加的
2、mutipart/form-data:@RequestBody不能处理这种格式
3、其他格式,比如application/json,application/xml等,必须使用@RequestBody来处理
本文引用:https://www.cnblogs.com/anai/p/4272573.html
http://blog.csdn.net/tycoon1988/article/details/40080691
努力了,才不会留下遗憾。