public class HttpUtiles {
public HttpUtiles(){};
private static HttpUtiles okHttpUtils;
public static HttpUtiles getOkHttpUtils(){
if(okHttpUtils==null){
okHttpUtils = new HttpUtiles();
}
return okHttpUtils;
}
public HttpUtiles get(String url){
final Message message= Message.obtain();
Interceptor interceptor = new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
RequestBody body = request.body();
String method = request.method();
Log.i("Http", "intercept: "+body+"==="+method);
return chain.proceed(request);
}
};
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();
Request request = new Request.Builder().url(url).build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
message.what=100;
message.obj=e.getMessage();
handler.sendMessage(message);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
message.what=101;
message.obj=response.body().string();
handler.sendMessage(message);
}
});
return this;
}
public HttpUtiles post(String url, RequestBody body){
final Message message= Message.obtain();
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder() .post(body).url(url).build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
message.what=100;
message.obj=e.getMessage();
handler.sendMessage(message);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
message.what=101;
message.obj=response.body().string();
handler.sendMessage(message);
}
});
return this;
}
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 101://成功
String data= (String) msg.obj;
listener.success(data);
break;
case 100://失败
String error= (String) msg.obj;
listener.fail(error);
break;
}
}
};
private Http.HttpListener listener;
public void result(Http.HttpListener listener){
this.listener=listener;
}
public interface HttpListener{
void success(String data);
void fail(String error);
}
}