public class HttpHelper {
private HttpRequestListener listener;
private static final int SUCCESS_REQUEST = 1;
private static final int FAIL_REQUEST = 0;
public void setListener(HttpRequestListener listener) {
this.listener = listener;
}
public HttpHelper doGet(String url) {
OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder().get().url(url).build();
doHttp(okHttpClient, request);
return this;
}
public HttpHelper doPost(String url, RequestBody body) {
OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder().post(body).build();
doHttp(okHttpClient, request);
return this;
}
private void doHttp(OkHttpClient okHttpClient, final Request request) {
final Message msg = Message.obtain();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.d("TAG", "失败");
msg.what = FAIL_REQUEST;
msg.obj = e.getMessage();
handler.sendMessage(msg);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {
InputStream stream = response.body().byteStream();
String data = CharStreams.toString(new InputStreamReader(stream, "utf-8"));
msg.what = SUCCESS_REQUEST;
msg.obj = data;
handler.sendMessage(msg);
}
}
});
}
private final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case SUCCESS_REQUEST:
String data = (String) msg.obj;
listener.successRequest(data);
break;
case FAIL_REQUEST:
String mess = (String) msg.obj;
listener.fail(mess);
break;
}
}
};
}
接口的实现
public interface HttpRequestListener {
void successRequest(String data);
void fail(String msg);
}