#Android OkHttp使用教程

Android OkHttp使用教程

我自己写的okhttp辅助类 Jerry
okhttp地址 OkHttp

本文的教程基于okhttp 3.2.0


一 获取okhttp client

OkHttpClient okHttpClient = new OkHttpClient();

 怎么样,是不是很简单?当然,你也可以个性化你的Client:

  OkHttpClient okHttpClient  = new OkHttpClient.Builder().readTimeout(1000, TimeUnit.MILLISECONDS).build();

OkHttpClient.Builder提供了诸如连接超时、缓存等等诸多配置。

二发送一个Get请求

发送请求我们要通过创建一个Request对象:

 Request request = new Request.Builder().build();

Request对象为我们提供了几种常见的请求方式:post、get、delete、put。
下面我们将创建一个简单的get请求:

   Request request = new Request.Builder().url("your url").get().build();

当然我们现在只是创建了一个Request,发出这个Request是由OkHttpClient完成的:

    try {
            Response response = okHttpClient.newCall(request).execute();
        } catch (IOException e) {
            e.printStackTrace();
        }

或者:

          okHttpClient.newCall(request).enqueue(new Callback() {
             @Override
             public void onFailure(okhttp3.Call call, IOException e) {

             }

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

             }
         });
如果有一定开发经验的读者读到这里应该已经明白了这两种方法的区别了:

execute方法为我们提供的同步请求,也就是说当我们在UI线程调用此方法会阻塞我们的UI线程。

enqueue是异步的,请求完成或者抛出异常,OkHttpClient会回调名为CallBack的对象,enqueue方法并不会阻塞我们的UI线程。
如果服务器有响应,无论是execute还是enqueue都会为我们提供一个Response对象,Request对象包含了诸多方法,如:
   response.isSuccessful(); //预示着请求是否成功,也就是http status  code为200的情况;
   response.code(); //获取http status code,也就是200,404这类的状态码;
   response.headers(); //获取响应头,返回的是Headers对象。当然也可以通过
response.header("name")或者response.header("name","default vaule")直接获取相应的响应头 

当然还有很多其他方法,需要读者自行研究。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值