OkHttp可以说是Android界最为牛X的网络框架没有之一,GitHub上stat数量26k+,如果你熟悉iOS开发,那么你肯定听说过AFNetworking网络框架了,OkHttp就相当于Android界的AFNetworking了,由square公司出品,Android大神Jake Wharton打造,下面我们一起来了解一下这个框架。
基本用法
1 | //1、构建OkHttpClient |
这就是整个请求流程,如果要获取返回结果,OkHttp封装了一个Response对象,我们可以通过这个对象获取到这些东东。1
2
3response.body().string()
response.body().bytes()
response.body().byteStream()
可以看到有字符串和字节流,普通的文本和文件下载都是支持的
GET请求
1 | new Request.Builder().get() |
这个是不带参数的get请求方式,但是通常我们不都要带一点嘛,可以通过这种方式去添加参数
1 | request.url() |
当然如果你引入了Retrofit的支持,那么可以利用这两个注解来完成参数的添加。
1 | 1、@Query |
POST请求
POST一个JSON串
1 | MediaType JSON = MediaType.parse("application/json; charset=utf-8"); |
POST一个字符串
1 | MediaType MARKDOWN= MediaType.parse("text/x-markdown; charset=utf-8"); |
因为请求体在内存中,避免大于1M
POST键值对
1 | RequestBody formBody = new FormEncodingBuilder() |
POST流
1 | new RequestBody() { |
POST分块请求
1 | new MultipartBuilder() |