HTTP 协议头解析
Request
由四部分组成,包括:请求行、请求头(header) 、空行和请求数据。
Get 请求例子,如下:
|
|
第一部分: 请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本.
第二部分:请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息
第三部分:空行,请求头部后面的空行是必须的
第四部分:请求数据也叫主体,可以添加任意的其他数据。
Post 请求列子, 如下:
|
|
Response
由 状态行、消息报头、空行和响应政文组成。
|
|
Get 和 Post 的区别:
- GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如stadig.ifeng.com?datatype=videoapp&mos=android_7.0. POST方法是把提交的数据放在HTTP包的Body中.
- GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.
- GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。
Volley Post 请求实现
通过重写 getParams() 方法实现,如下:
|
|
StatisticPostRequest 重写 getBody() 方法来对 params 进行 encode, 代码如下:
|
|
还有一种方式,可以传入 请求体 requestBody, 代码如下:
|
|
父类如下:
|
|
如果要对 body 参数进行 UrlEncode ,如下:
|
|
纪念一下,从成为一个开发者之后第一次,由于自己的 CTRL + C / CTRL+ V 导致线上版本统计出问题,领导很快就决定 每人罚款 ¥五百 ,以示惩戒。
罚款不是目的
愿 2018 一切顺利!!!