您的位置:首页 > 理论基础 > 计算机网络

自己简单的封装一个OKHttp工具类

2017-12-15 12:07 465 查看
public class HttpUtils {
private static volatile HttpUtils httpUtils;
private  OkHttpClient okHttpClient;

private HttpUtils() {
//创建OKhttpClient和拦截器
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
okHttpClient = new OkHttpClient.Builder()
.addInterceptor(logging)
.build();
}
//单例模式
public static HttpUtils getHttpUtils(){
if (httpUtils == null){
synchronized (HttpUtils.class){
if (httpUtils == null){
httpUtils = new HttpUtils();
}
}
}
return httpUtils;
}
//Get
public void doGet(String url, Callback callback){
//此处应该放置判断网络
Request request = new Request.Builder().url(url).get().build();
okHttpClient.newCall(request).enqueue(callback);
}
//post
public void doPost(String url, Map<String,String> params,Callback callback){
//此处应该放置判断网络
//判断参数
if (params == null ||params.size() == 0){
throw new RuntimeException("params is null!!!");
}
FormBody.Builder builder = new FormBody.Builder();
for (Map.Entry<String,String> entry:params.entrySet()){
builder.add(entry.getKey(),entry.getValue());
}
FormBody formBody = builder.build();
Request request = new Request.Builder()
.url(url)
.post(formBody)
.build();
okHttpClient.newCall(request).enqueue(callback);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: