android accept方法详解,Android OkHttp常用详解

aaa87e8ad9eb

图片发自简书App

OkHttp不需要多介绍了,已经是网络框架界的大佬了,很多网络框架都基于OkHttp封装,也有很多涉及到网络的第三方框架都可以支持使用OkHttp替换网络。

OkHttp的4.0.x版本已经全部由java替换到了Kotlin,API的一些使用也会有些不同,具体的参考Upgrading to OkHttp 4

由于不熟悉Kotlin代码,本文使用的OkHttp的版本为3.14.2,是3.14.x的最后一个版本

接入

OkHttp在3.13.x以上的版本需要在Android 5.0+ (API level 21+)和Java 1.8的环境开发。

同时还需要再添加Okio的依赖库,而Okio在1.x版本是基于Java实现的,2.x则是Kotlin实现的。

dependencies {

//...

//OkHttp

implementation 'com.squareup.okhttp3:okhttp:3.14.2'

implementation 'com.squareup.okio:okio:1.17.4'

}

3.12.x以及以下的版本支持Android 2.3+ (API level 9+)和Java 1.7的开发环境

Get请求

请求分为同步请求和异步请求,先看看同步请求

public void getSyn(final String url) {

new Thread(new Runnable() {

@Override

public void run() {

try {

//创建OkHttpClient对象

OkHttpClient client = new OkHttpClient();

//创建Request

Request request = new Request.Builder()

.url(url)//访问连接

.get()

.build();

//创建Call对象

Call call = client.newCall(request);

//通过execute()方法获得请求响应的Response对象

Response response = call.execute();

if (response.isSuccessful()) {

//处理网络请求的响应,处理UI需要在UI线程中处理

//...

}

} catch (IOException e) {

e.printStackTrace();

}

}

}).start();

}

这就是一段同步Get请求的代码,同步网络请求需要在子线程中执行,而处理UI需要回到UI线程中处理。

在看看Get的异步请求,这时就不需要自己创建子线程了,但是处理UI同样需要在UI线程中处理,不能再请求响应的回调方法中处理

public void getAsyn(String url) {

OkHttpClient client = new OkHttpClient();

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

Call call = client.newCall(request);

call.enqueue(new Callback() {

@Override

public void onFailure(Call call, IOException e) {

//...

}

@Override

public void onResponse(Call call, Resp

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值