package com.ectrip.trips.net; import android.os.Handler; import android.os.Message; import com.ectrip.cyt.utils.LogUtil; import java.io.IOException; import okhttp3.MediaType; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; public class BasePostProtocol { private String url; private String mParamsStr; private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 100://成功 String result = (String) msg.obj; callback.onSuccessed(result); break; case 101://失败 String error = (String) msg.obj; callback.onFailure(error); LogUtil.d("HTTP", error); break; } } }; INetCallBack callback; /** * post 请求的方法 * * @param url 请求地址 * @param paramStr 参数 */ public void loadMoreData(String url, String paramStr, final INetCallBack call) { LogUtil.d("HTTP", "【请求地址】" + url); LogUtil.d("HTTP", "【请求参数】" + paramStr); mParamsStr = paramStr; this.url = url; callback = call; callback.onPrepare(); new Thread(new Runnable() { @Override public void run() { loadDataFromNet(); } }).start(); } private void loadDataFromNet() { try { OkHttpClient okHttpClient = OkHttpFactory.getOkHttpClient(); MediaType JSON = MediaType.parse("application/json; charset=utf-8"); RequestBody formBody = RequestBody.create(JSON, mParamsStr); Request request = new Request.Builder().url(url).post(formBody).build(); Response response; try { response = okHttpClient.newCall(request).execute(); if (response.isSuccessful()) { Message message = Message.obtain(); String result = response.body().string(); LogUtil.d("HTTP", result); message.obj = result; message.what = 100; mHandler.sendMessage(message); } else { Message message = Message.obtain(); String error = response.body().string(); LogUtil.d("HTTP", error); message.obj = error; message.what = 101; mHandler.sendMessage(message); } } catch (IOException e) { Message message = Message.obtain(); String error = LogUtil.getExMsg(e); LogUtil.d("HTTP", error); message.obj = error; message.what = 101; mHandler.sendMessage(message); } } catch (Exception e) { LogUtil.d("HTTP", LogUtil.getExMsg(e)); } } }