一个最简单的OkHttpClient
一个复杂点的OkHttpClient配置
具体可配置参数见OkHttpClient.Builder类,几点注意事项选明映雨富果话:
两种拦截器的区别
官方提供的LoggingInterceptor
地址:https://***.com/victorf来自an336/okhttp-logging-interceptor
***.build中添加依赖:
compile'com.s360问答quareup.okhttp3:logging-interceptor:3.1.2'
通过Request.Builder创建请求,默认是Get请求
主要是构建RequestBody,并设置Content-Type消息头。
1.普通Post请求
比如json请求
2.使用FormBody传递键值权六对参数
Content-Type:application/x-www-form-urlencoded
比如:
3.使用RequestBody传递Json或File对象
4.使用Multipar血措曲毫些联部紧达由tBody同时传递键值对参数和File对象
5.使用MultipartBody提交分块请求
6.自定义RequestBody实现流的上传
1、同步执行
由于andro克左笑城id强制要求网络请求在线程中执行,所以无法使用execute
2、异步执行
1.设置请求头
2.设置超时
3.设置缓存
1、对于Get请求,如果请求参数较多,自己拼接Url较为麻烦
比如
拼接结果:http://www.baidu.com/user/login/username=zhangsan&password=123456
如果能做一些封装,直接addParam(key,value)的形式则会简单很多。
2、Callback在子线程中回调,大部分时候,我们都是需要更新UI的,还需自己post到主线程中处余念线岁理。
3、构建请求步骤比较多
因此,Square提供了针对OkHttp的封装库Retrofit,另外Github上也有很多第三方的封装库,比如OkGo。