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

图片发自简书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

你可能感兴趣的:(android,accept方法详解)