package com.view.meituan.utils;
import android.provider.MediaStore;
import java.io.IOException;
import java.util.Map;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
//网络请求工具
public class OkHttpUtils {
//初始化OkHttpClient
private static OkHttpClient client;
public OkHttpUtils() {
}
//单例模式(懒汉式)在内部初始化OkHttp
public static OkHttpClient getInstance(){
if (client==null){
//同步
synchronized (OkHttpUtils.class){
if (client==null){
client=new OkHttpClient();
}
}
}
return client;
}
/**
* do get同步请求方法
* url请求链接
* 通过callback获取结果
* */
public static void doget(String url){
Request request = new Request.Builder()
.url(url)
.build();
Call call = getInstance().newCall(request);
try {
call.execute();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* do get异步请求方法
* url请求链接
* 通过callback获取结果
* */
public static void dogetx(String url, Callback callback){
Request request = new Request.Builder()
.url(url)
.build();
Call call = getInstance().newCall(request);
call.enqueue(callback);
}
/*
* dopost 方法
* url
* map
* */
public static void dopost(String url, Map<String,String> map, Callback callback){
FormBody.Builder builder=new FormBody.Builder();
for (String key:map.keySet()){
builder.add(key,map.get(key));
}
Request request = new Request.Builder()
.post(builder.build())
.url(url)
.build();
Call call = getInstance().newCall(request);
call.enqueue(callback);
}
/*
* dopost 方法
* url
* map
* */
public static void dopostx(String url,String json,Callback callBack){
RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), json);
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
Call call = getInstance().newCall(request);
call.enqueue(callBack);
}
}