BasePostProtocol.java 3.1 KB
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));
        }

    }

}