package com.lbp.gouwuche.utils; import android.os.Handler; import android.os.Message; import com.lbp.gouwuche.model.OkHttpListener; import java.io.IOException; import java.util.Map; import java.util.Set; import okhttp3.Call; import okhttp3.Callback; import okhttp3.FormBody; import okhttp3.Interceptor; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; /** * Created by Administrator on 2018/1/13 0013. */ public class OkHttpUtils { public static OkHttpUtils okHttpUtils=null; private MyHandler handler =new MyHandler(); private OkHttpListener okListener; public static OkHttpUtils getInsten(){ if (okHttpUtils==null){ okHttpUtils = new OkHttpUtils(); } return okHttpUtils; } public void okget(String url){ OkHttpClient client = new OkHttpClient.Builder().addInterceptor(new MyInten()).build(); Request build = new Request.Builder().url(url).build(); Call call = client.newCall(build); call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { Message message = handler.obtainMessage(); message.what=0; message.obj="错误"; handler.sendMessage(message); } @Override public void onResponse(Call call, Response response) throws IOException { Message message = handler.obtainMessage(); message.what=1; message.obj=response.body().string(); handler.sendMessage(message); } }); } public void okPost(String url, Map<String,String> map){ OkHttpClient client = new OkHttpClient.Builder().addInterceptor(new MyInten()).build(); FormBody.Builder builder = new FormBody.Builder(); Set<String> set = map.keySet(); for(String key:set){ String va = map.get(key); builder.add(key,va+""); } FormBody build = builder.build(); Request request = new Request.Builder().url(url).post(build).build(); Call call = client.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { Message message = handler.obtainMessage(); message.what=0; message.obj="错误"; handler.sendMessage(message); } @Override public void onResponse(Call call, Response response) throws IOException { Message message = handler.obtainMessage(); message.what=1; message.obj=response.body().string(); handler.sendMessage(message); } }); } class MyInten implements Interceptor{ @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request(); RequestBody body = request.body(); if(body instanceof FormBody){ FormBody.Builder builder = new FormBody.Builder(); for (int i = 0; i <((FormBody)body).size() ; i++) { String name = ((FormBody) body).name(i); String value = ((FormBody) body).value(i); builder.add(name,value); } builder.add("page","1"); builder.add("source", "android"); FormBody build = builder.build(); Request request1 = request.newBuilder().post(build).build(); Response proceed = chain.proceed(request1); return proceed; } return null; } } class MyHandler extends Handler{ @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what){ case 0: String error = (String) msg.obj; okListener.okLoaderror(error); break; case 1: String json = (String) msg.obj; okListener.okLoadsuccess(json); break; } } } public void setOkListener(OkHttpListener okListener){ this.okListener=okListener; } }
OkHttp(get,post)请求
最新推荐文章于 2024-10-12 09:42:14 发布