OkHttp网络请求框架

OkHttp是一个高效的Http请求框架,使用起来也比较简单,能够帮助我们更好的进行网络请求。下面来分析一下OkHttp。

官网地址:
http://square.github.io/okhttp

GitHub地址:
https://github.com/square/okhttp

1.添加OkHttp的支持

对于Android Studio,我们可以在项目的module的build.gradle的dependencies中添加OkHttp的依赖

 compile  'com.squareup.okhttp3:okhttp:3.4.1'

如果是使用Eclipse,可以下载OkHttp的jar包来使用,当然Android Studio也可以使用jar包。

最新的依赖,或者是jar包可以到OkHttp的官网或者是GitHub上查看和下载,前面已经给出了OkHttp 的官网地址和GitHub地址。

2.OkHttp的基本使用

(1)Get请求
(2)Post请求
(3)基于Http的文件上传
(4)基于Http为文件下载
(5)图片加载
(6)支持请求回调
(5)支持Session的保持

-Get请求

OkHttpClient : 一个OkHttpClient的实例

Request : 构建一个请求,可以设置url,请求方式,请求参数等。

Call: 通过Request创建一个Call实例,相当于将请求封装成了任务。

call.execute() 同步请求,会阻塞线程,等待返回结果。

call.enqueue(Callback) 异步请求。

String url = "http://192.168.0.102:8080/HttpServer/TestServlet";
  OkHttpClient okHttpClient = new OkHttpClient();      
  Request request = new Request.Builder().url(url).build();
  Call call = okHttpClient.newCall(request);
  call.enqueue(new Callback() {

      @Override
      public void onFailure(Call call, IOException e) {


     }
      @Override
      public void onResponse(Call call, Response response) throws IOException {


      }
    }

onFailure()
是请求失败的回调

onResponse()
是请求成功的回调,response是响应对象,通过response.body().byteStream()可以拿到返回的InputStream。

注意:onFailure()和onResponse()这两个回调方法都是运行在非主线程里,所以不能在这两个方法里面对UI进行操作。

-Post请求

Post请求和Get请求基本相同,但是需要增加RequestBody来设置请求参数,在Request中增加post(RequestBody)表明是Post请求。

String url = "http://192.168.0.102:8080/HttpServer/TestServlet";
  OkHttpClient okHttpClient = new OkHttpClient();

  RequestBody requestBody = new FormBody.Builder().add("key", "value").build();//添加请求参数

  Request request = new Request.Builder().post(requestBody).url(url).build();//注意添加post(requestBody)

  Call call = okHttpClient.newCall(request);
  call.enqueue(new Callback() {

       @Override
        public void onFailure(Call call, IOException e) {

         } 

       @Override
       public void onResponse(Call call, Response response) throws IOException {

       }
     }

对于OkHttp在我们使用的时候最好自己封装一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值