public class OkHttpUtils {
private HttpLister lister;
private int HTTP_FAIL=1001;
private int HTTP_SUCCESS=1000;
private Handler handler =new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what==HTTP_SUCCESS){
String data = (String) msg.obj;
lister.success(data);
}else{
lister.fail();
}
}
};
//get,post请求
public OkHttpUtils get(String url){
doHttp(url,0,null);
return this;
}
public OkHttpUtils post(String url,FormBody.Builder boyBuilder){
doHttp(url,1,boyBuilder);
return this;
}
//网络请求
private void doHttp(String url, int type, FormBody.Builder boyBuilder) {
OkHttpClient client=new OkHttpClient.Builder().addInterceptor(new Interceptor() {
//拦截器
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
return chain.proceed(request);
}
}).build();
Request.Builder builder = new Request.Builder();
builder.url(url);
if (type==0){
builder.get();
}else{
RequestBody body =boyBuilder.build();
builder.post(body);
}
final Message message=Message.obtain();
Request request=builder.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
message.what=HTTP_FAIL;
handler.sendMessage(message);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
message.obj=response.body().string();
message.what=HTTP_SUCCESS;
handler.sendMessage(message);
}
});
}
//接口回调
public void result(HttpLister lister){
this.lister=lister;
}
public interface HttpLister{
void success(String data);
void fail();
}
}