本人写的一个工具类,直接调用里面的方法即可使用,get,post,请求
post需要传FormBoby 直接在调用工具类之前写一个FromBoby即可
* @Data:2019/4/30 11:23
* 描述:
*/
public class OkHttpUtil {
int http_success=1;
int http_fild=2;
public OkHttpUtil get(String url){
dohttp(url,0,null);
return this;
}
public OkHttpUtil post(String url,FormBody.Builder bobybuilder){
dohttp(url,1,bobybuilder);
return this;
}
//网络请求
private void dohttp(String url,int Type,FormBody.Builder bobybuilder){
OkHttpClient client=new OkHttpClient.Builder().addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
//拦截器
Request request = chain.request();
Log.i("aaa", "intercept: "+request.url().host());
return chain.proceed(request);
}
}).build();
Request.Builder builder = new Request.Builder();
if (Type == 0) {
builder.get();
}else{
builder.post(bobybuilder.build());
}
builder.url(url);
Request build = builder.build();
final Message bt = Message.obtain();
client.newCall(build).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
String a=e.getMessage();
bt.what=http_fild;
bt.obj=e;
handler.sendMessage(bt);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String a=response.body().string();
bt.obj=a;
bt.what=http_success;
handler.sendMessage(bt);
}
});
}
//创建线程
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == http_success) {
String data= (String) msg.obj;
callBack.success(data);
}else{
String data= (String) msg.obj;
callBack.fild(data);
}
}
};
//创建接口回调
public interface CallBack{
void success(String data);
void fild(String data);
}
public CallBack callBack;
public void setCallBack(CallBack callBack) {
this.callBack = callBack;
}
}