Open marclee44 opened 3 years ago
简介
OKHttp是Android平台上比较主流的一个高效HTTP客户端,其默认启用以下几个特性:
引用
implementation "com.squareup.okhttp3:okhttp:4.9.0"
当前稳定版本是4.9.0,你也可以去官网查看最新版本。另外不要忘了在清单文件声明访问Internet的权限,如果使用DiskLruCache,那还得声明写外存的权限。
DiskLruCache
基本使用方法
new OkHttpClient()
Request
Call.enqueue(Callback)
特别需要注意的是
RealCall.execute()
以下简单示例 同步GET请求
String url = Application.getString(R.string.url); OkHttpClient okHttpClient = new OkHttpClient(); final Request request = new Request.Builder() .url(url) .get() //默认就是GET请求,可以不写 .build(); final Call call = okHttpClient.newCall(request); new Thread(new Runnable() { @Override public void run() { try { Response response = call.execute(); Headers headers = response.headers(); String body = response.body().string()); } catch (IOException e) { e.printStackTrace(); } } }).start();
异步POST请求
String url = Application.getString(R.string.url); OkHttpClient okHttpClient = new OkHttpClient(); Request request = new Request.Builder() .url(url) .post(requestbody) //requestbody可以是String、流、文件等 .build(); okHttpClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { e.printStackTrace(); } @Override public void onResponse(Call call, Response response) throws IOException { Headers headers = response.headers(); String body = response.body().string()); } });
总体来说,作为HTTP客户端使用还是很方便的。至于其 拦截器-interceptor 功能,还没用过,之后再研究
OKHttp是Android平台上比较主流的一个高效HTTP客户端,其默认启用以下几个特性:
当前稳定版本是4.9.0,你也可以去官网查看最新版本。另外不要忘了在清单文件声明访问Internet的权限,如果使用
DiskLruCache
,那还得声明写外存的权限。new OkHttpClient()
Request
对象Call.enqueue(Callback)
方法来提交异步请求,或‘Call.execute()’方法同步提交请求特别需要注意的是
RealCall.execute()
以下简单示例 同步GET请求
异步POST请求
总体来说,作为HTTP客户端使用还是很方便的。至于其 拦截器-interceptor 功能,还没用过,之后再研究