1. 程式人生 > >使用okhttp 解析json資料

使用okhttp 解析json資料

 okhttp還是挺好使用的,而且6.0版本里面已經不提倡使用了HttpClient,下面我們來說說okhttp的使用

1.我們在Android studio中新增對okhttp的依賴(本文是在建立在Android studio的使用情況)

dependencies {
    compile 'com.zhy:okhttputils:2.3.9'}
2.我們可以封裝一個關於okhttp的工具類,下面是一個簡單的登入功能的實現
public class HttpUtils {
    public static String url = "http://mimi.xh-soft.com/MimiVideo/";  //不可少,是你的請求地址
    public static MiMiLoginListener miLoginListener;                    //登入

    public abstract interface MiMiLoginListener{
        public abstract void onLoginResult(int ret,Object msg);
    }

    public void onLoginResult(int ret,Object msg){
        if(miLoginListener != null ){
            miLoginListener.onLoginResult(ret,msg);
        }
        miLoginListener = null;
    }
    public static void postLogin(String phone_num,String passWord,final MiMiLoginListener listener){
        miLoginListener = listener;
        OkHttpUtils
                .post()
                .url(url+"login")
                .addParams("username", phone_num)
                .addParams("password",passWord)
                .build()
                .execute(new StringCallback() {
                    @Override
                    public void onError(Call call, Exception e) {
                        ToastUtil.show("連線錯誤,請檢視網路連線");
                    }

                    @Override
                    public void onResponse(String _response) {
                        listener.onLoginResult(1,_response);
                    }
                });
    }
}


3.接著就是接收json資料了
 private void login() {
        account = edit_user.getText().toString().toLowerCase().trim();//使用者名稱
        token = edit_pwd.getText().toString().trim();                 //密碼
        HttpUtil.postLogin(account, token, new HttpUtil.MiMiLoginListener() {
            @Override
            public void onLoginResult(int ret, Object msg) {
                Gson gson = new Gson();
                String jsonString = msg.toString();
                userBasicInfo = gson.fromJson(jsonString, Login.class);
                _loginresult = userBasicInfo.getResult();
                saveLoginType(String.valueOf(userBasicInfo.getUserType()));
                if (_loginresult.equals("true")) {
                    doLogin();
                } else {
                    showToast("使用者名稱或密碼錯誤");
                }
            }
        });
    }
3.1 下載GsonFormat外掛 快速生成JavaBean
 File->Settings..->Plugins-->Browse repositores..搜尋GsonFormat
然後安裝外掛,重啟android studio

3.2 GsonFormat的使用 Code ->Generate -> GsonFormat /右擊 ->Generate ->GsonFormat


複製你要解析的json資料,點選ok


這樣就基本完成了Android客戶端和服務端的對接了。