Android 网络请求框架Volley学习笔记

时间:2022-06-30 19:46:36

Volley是一个网络请求框架,是Google开发的,适合于频繁的网络请求但数据量不大的Http请求。

1.首先简单学习Http
http请求:三个部分
1>请求行
包含:请求方式 请求资源路径 协议类型/协议的版本号
2>请求头
分为两个部分:通用请求头 和 客户端的自定义信息 key-value的形式
3>请求实体
Post请求的请求参数写在这个地方,对于Get的请求参数直接写在url中

http响应:三个部分
1>响应行:
协议类型/协议版本号 状态码 状态码描述信息
2>响应头:
服务器返回给客户端的一些信息,key-value的形式
3>响应实体:
服务器返回给客户端的数据

2.关键词
header : 头(指请求头或者是响应头)
body: 体 (请求实体或者是响应实体)
Request: 请求(客户端向服务端请求)
Response:响应(服务器向客户端请求)
parameter:参数(可以值客户端请求客户端的参数,对于post请求可以理解为请求实体)

3.重要概念
1>请求时耗时操作,所以在Android中不能在主线程中直接发请求,这样和阻塞UI线程,所以请求需要开启子线程去做,然后将数据回调到UI线程,然后去更新UI
2>网络请求框架的好处,就是 帮我们处理了子线程问题,并且做了一系列优化
3>Http请求底层使用的HttpUrlConnection(HttpClient已经被淘汰)

4.Volley中重要的类
Request 泛型类,这个是一切请求的父类,如果想自定义请求类型可以继承这个类。
Response :服务器响应客户端类
RequestQueue: 请求队列,其实就是线程池,用于存放请求,使用Volley框架最后一定要将Request对象添加到RequestQueue中

5.重要的方法:
1>想发送请求头信息:
重写getHeader()方法,此方法会被框架回调
2>想发送请求实体信息:
重写getBody()解析
3>向获取服务器返回的数据
重写parseNetworkResponse()方法,当然框架会回调响应实体数据在onResponse()中,两处都可以取数据
不过正常情况下在onResponse()中操作返回的响应实体数据
如果想操作响应头信息就必须要重写parseNetworkResponse()方法
4>重写getParams()
这个方法也可以携带请求参数,也就是Post请求的请求实体内容,和getBody()作用参不多

6.发不同形式的数据:
1>发Json数据
使用框架底层的JsonRequest或者是JsonObjectRequest
2>发字符串
使用StringRequest
3>发字节数组数据
必须要自定义了,写一个类去继承Request
4>对于定制化的内容
比如加密和解密压缩等等操作,就必须要定制化了,一般是发字节数组的请求