android 实现okhttp3工具类
时间: 2023-11-20 19:07:31 浏览: 171
okhttp3工具类
5星 · 资源好评率100%
实现一个 OkHttp3 工具类可以方便我们在 Android 应用中使用 OkHttp3 发送网络请求。下面是一个简单的 OkHttp3 工具类示例:
```java
public class OkHttpHelper {
private static OkHttpHelper mInstance;
private OkHttpClient mOkHttpClient;
private OkHttpHelper() {
mOkHttpClient = new OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.SECONDS)
.readTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.build();
}
public static OkHttpHelper getInstance() {
if (mInstance == null) {
synchronized (OkHttpHelper.class) {
if (mInstance == null) {
mInstance = new OkHttpHelper();
}
}
}
return mInstance;
}
public void get(String url, Callback callback) {
Request request = new Request.Builder()
.url(url)
.get()
.build();
mOkHttpClient.newCall(request).enqueue(callback);
}
public void post(String url, Map<String, String> params, Callback callback) {
FormBody.Builder builder = new FormBody.Builder();
for (Map.Entry<String, String> entry : params.entrySet()) {
builder.add(entry.getKey(), entry.getValue());
}
RequestBody requestBody = builder.build();
Request request = new Request.Builder()
.url(url)
.post(requestBody)
.build();
mOkHttpClient.newCall(request).enqueue(callback);
}
}
```
使用 OkHttpHelper 发送网络请求的示例代码:
```java
OkHttpHelper.getInstance().get("https://www.example.com", new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String result = response.body().string();
// 处理请求结果
}
});
```
上述示例代码实现了 get 和 post 请求,可以通过调用对应的方法发送网络请求。在构造 OkHttpClient 实例时,我们设置了连接超时、读取超时和写入超时的时间为 10 秒。在 get 和 post 方法中,我们使用 OkHttp3 的 Request 和 RequestBody 构建请求,然后通过 OkHttpClient 实例发送请求并获取响应结果。
阅读全文