android同步阻塞,Android使用OkHttp进行网络同步异步操作

本文详细介绍了Android中使用OkHttp进行网络请求的同步和异步方式,包括同步阻塞的execute方法和异步的enqueue方法,并讲解了Request、Response和Call的基本概念。此外,还探讨了拦截器的应用,包括应用拦截器和网络拦截器的实现与区别,以及如何重写请求和响应。
摘要由CSDN通过智能技术生成

Android使用OkHttp进行网络同步异步操作

发布时间:2020-09-12 03:50:54

来源:脚本之家

阅读:196

作者:xingfeng_coder

OkHttp是一个Java和Android的HTTP和HTTP/2的客户端,负责发送HTTP请求以及接受HTTP响应。

一、使用OkHttp

OkHttp发送请求后,可以通过同步或异步地方式获取响应。下面就同步和异步两种方式进行介绍。

1.1、同步方式

发送请求后,就会进入阻塞状态,知道收到响应。下面看一个下载百度首页的例子:

OkHttpClient client = new OkHttpClient.Builder().readTimeout(5, TimeUnit.SECONDS).build();

Request request = new Request.Builder().url("http://www.baidu.com")

.get().build();

Call call = client.newCall(request);

try {

Response response = call.execute();

System.out.println(response.body().string());

} catch (IOException e) {

e.printStackTrace();

}

上面的代码先创建OkHttpClient和Request对象,两者均使用了Builder模式;然后将Request封装成Call对象,然后调用Call的execute()同步发送请求,最后打印响应。

1.2、异步方式

异步方式是在回调中处理响应的,同样看下载百度首页的例子:

OkHttpClient client = new OkHttpClient.Builder().readTimeout(5, TimeUnit.SECONDS).build();

Request request = new Request.Builder().url("http://www.baidu.com")

.get().build();

Call call = client.newCall(request);

call.enqueue(new Callback() {

@Override

public void onFailure(Call call, IOException e) {

System.out.println("Fail");

}

@Override

public void onRespo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值