由于Volley在解析期间将所有数据保存在内存中,不适合文件下载或流式操作,因此Volley本身并没有提供上传及下载的Request,大文件上传下载是完全不适合使用的,但是小文件还是可以勉强使用的。
对于HttpComponents一定不会陌生,使用过HttpClient就一定知道,使用HttpComponents的原因只是为了简化操作,将复杂的流操作都由其进行处理。
Volley 简单使用(三) ImageRequest及Request设置
Image请求和其他请求也基本类似,返回的结果为Bitmap,无需进行任何流操作,不过需要限定图片的大小、ScaleType和图片格式等。
Volley 简单使用(二) JsonRequest以及自定义Request
目前大部分请求返回的数据都是JSON格式,为了方便解析,Volley还提供了JsonRequest,其中包括JsonObjectRequest和JsonArrayRequest。
使用方法和StringRequest基本相同,只不过返回的数据为JSONObject或者JSONArray,大大增加了便利性。
如果JSONObject和JSONArray还不能满足需求的话,也可以通过继承Request类的方式自定义Gson或者FastJson的请求。
Volley 简单使用(一) StringRequest
OKHTTP3 简单使用(五) 下载文件
基于GET进行文件下载,写法与GET请求基本一致,只不过一般GET请求的时候是通过获取ResponseBody的String,从String中获取服务器的回调信息,而下载则是通过获取ResponseBody的InputStream,然后将InputStream保存到本地文件中
由于文件下载不仅仅涉及网络请求,还涉及文件的读写,不建议在主线程中进行,因此建议使用异步方式进行请求
OKHTTP3 简单使用(四) 上传文件
文件上传基于POST,因此和POST写法基本一致,但是不再使用FormBody,FormBody使用的MideaType(Content-Type)为"application/x-www-form-urlencoded; charset=utf-8"
,无法上传文件,而上传文件需要通过"application/form-data; charset=utf-8"
的方式进行
OkHttp还提供了一个MultipartBody类,同样继承自RequestBody,可以以"application/form-data; charset=utf-8"
进行文件上传,同时"application/form-data"
不仅可以上传文件,也可以用于普通数据的提交
OKHTTP3 简单使用(三) POST方法
无论是GET还是POST请求,最后都是有Call发起的,所以POST也可以有同步和异步两种方式,请求时步骤与GET基本一致
与GET不同的是,在构建Request的时候,需要传一个RequestBody对象,RequestBody用来添加请求参数以及制定MideaType(Content-Type)
OKHTTP3 简单使用(二) GET方法
OKHTTP3 简单使用(一) 介绍及Android Studio集成
HTTP是现代应用常用的一种交换数据和媒体的网络方式,高效地使用HTTP能让资源加载更快,节省带宽。OkHttp是一个高效的HTTP客户端,它有以下默认特性:
- 支持HTTP/2,允许所有同一个主机地址的请求共享同一个socket连接
- 连接池减少请求延时
- 透明的GZIP压缩减少响应数据的大小
- 缓存响应内容,避免一些完全重复的请求
当网络出现问题的时候OkHttp依然坚守自己的职责,它会自动恢复一般的连接问题,如果你的服务有多个IP地址,当第一个IP请求失败时,OkHttp会交替尝试你配置的其他IP,OkHttp使用现代TLS技术(SNI, ALPN)初始化新的连接,当握手失败时会回退到TLS 1.0。
Hello World
全新博客开张