okhttp发送异步请求
时间: 2023-10-25 15:10:48 浏览: 99
使用OkHttp发送异步请求的步骤如下:
1. 导入OkHttp库
在项目的build.gradle中添加以下依赖:
```
dependencies {
implementation 'com.squareup.okhttp3:okhttp:4.9.0'
}
```
2. 创建OkHttp请求对象
OkHttp的请求对象是Request类,可以根据需求设置请求方式、请求头等信息。例如:
```
Request request = new Request.Builder()
.url("http://www.example.com")
.build();
```
3. 创建OkHttpClient对象
OkHttpClient是OkHttp的核心类,需要通过它来发送请求。一般我们只需要创建一个OkHttpClient对象即可,可以使用单例模式。例如:
```
private static OkHttpClient okHttpClient;
public static synchronized OkHttpClient getOkHttpClient() {
if (okHttpClient == null) {
okHttpClient = new OkHttpClient();
}
return okHttpClient;
}
```
4. 发送异步请求
使用OkHttpClient的newCall方法创建一个Call对象,然后调用enqueue方法发送异步请求。例如:
```
OkHttpClient okHttpClient = getOkHttpClient();
Request request = new Request.Builder()
.url("http://www.example.com")
.build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
// 异常处理
}
@Override
public void onResponse(Call call, Response response) throws IOException {
// 响应处理
}
});
```
在回调方法中,onFailure方法会在请求失败时调用,onResponse方法会在请求成功并得到响应时调用。响应结果可以通过response.body().string()方法获取。
阅读全文