使用单例模式中的 静态内部类 封装的一个OkHttp 工具类
首先要导入的依赖
implementation 'com.squareup.okhttp3:okhttp:3.12.0'/*这是使用okhttp 的依赖*/
public class OkUtils {
private OkHttpClient okHttpClient;
public OkUtils() {
okHttpClient = new OkHttpClient();
}
public static OkUtils getInstance(){
return OkHolder.okUtils;
}
static class OkHolder{
private static final OkUtils okUtils = new OkUtils();
}
// 同步get
public String getsync(String murl) throws IOException {
Request request = new Request.Builder().url(murl).build();
return okHttpClient.newCall(request).execute().body().string();
}
// 同步post
public String postsync(String murl,String key,String value) throws IOException {
RequestBody body = new FormBody.Builder().add(key,value).build();
Request request = new Request.Builder().url(murl).post(body).build();
return okHttpClient.newCall(request).execute().body().string();
}
// 异步get
public void getAsync(String murl, Callback callback){
Request request = new Request.Builder().url(murl).build();
okHttpClient.newCall(request).enqueue(callback);
}
// 异步 post
public void postAsync(String murl,String key,String value,Callback callback){
RequestBody body = new FormBody.Builder().add(key,value).build();
Request request =new Request.Builder().url(murl).post(body).build();
okHttpClient.newCall(request).enqueue(callback);
}
}