import android.os.Handler; import com.example.mvp3.OnFinishListener; import java.io.IOException; import java.util.Map; import okhttp3.Call; import okhttp3.Callback; import okhttp3.FormBody; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; /** * Created by 知足 on 2017/12/9. */ public class OkHttpUtils { private static OkHttpUtils okHttpUtils = null; private static Handler handler =new Handler(); private OkHttpUtils(){}; /** * 获取当前这个类的实列 * */ public static OkHttpUtils getInstance(){ if(null == okHttpUtils){} synchronized (OkHttpUtils.class){ if(null == okHttpUtils){ okHttpUtils =new OkHttpUtils(); } } return okHttpUtils; } /** * get请求 * */ public void doGet(String path, Map<String,String> map , final OnFinishListener onFinishListener){ StringBuilder sb = null; for(String key: map.keySet()){ if(null == sb){ sb= new StringBuilder(); sb.append("?"); }else{ sb.append("&"); } //拼接参数 sb.append(key).append("=").append(map.get(key)); } OkHttpClient okHttpClient = new OkHttpClient(); final Request request = new Request.Builder() .url(path+sb.toString()) .get() .build(); Call call = okHttpClient.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { //在子线程 handler.post(new Runnable() { @Override public void run() { onFinishListener.onFailed(e.getMessage()); } }); } @Override public void onResponse(Call call, Response response) throws IOException { final String result = response.body().string(); handler.post(new Runnable() { @Override public void run() { onFinishListener.onSuccess(result); } }); } }); } /** * post请求 * */ public void doPost(String path, Map<String,String> map, final OnFinishListener onFinishListener){ OkHttpClient okHttpClient = new OkHttpClient(); FormBody.Builder builder= new FormBody.Builder(); for (String key:map.keySet()){ builder.add(key,map.get(key)); } //构建请求体 FormBody body = builder.build(); Request request = new Request.Builder() .post(body) .url(path) .build(); Call call = okHttpClient.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { //在子线程 handler.post(new Runnable() { @Override public void run() { onFinishListener.onFailed(e.getMessage()); } }); } @Override public void onResponse(Call call, Response response) throws IOException { final String result = response.body().string(); handler.post(new Runnable() { @Override public void run() { onFinishListener.onSuccess(result); } }); } }); } }
OkHttp get post请求的封装
最新推荐文章于 2023-05-19 08:27:32 发布