版权声明:本文为HaiyuKing原创文章,转载请注明出处!

上一篇讲了如何在项目中导入OKHttputils库的操作,这一篇主要讲常见请求的写法。

    public String getPersionTypeApi(StringCallback callback)
            throws Exception {
        String result = "";
        OkHttpUtils
                .get()
                .url(getSpcyUrl(ServerApi.GET_PERSION_TYPE_URL))
                .addParams("IS_JSON", "true")
                .addParams("VALUE_OBJES_4_JSON", "jsonMap")
                .id(100)
                .tag(context)
                .build()
                .execute(callback);
        return result;
    }

调用

    private void getPersionType(){
        try {
            LoginLogic.Instance(MainActivity.this).getPersionTypeApi(new GetPersionTypeStringCallback());
        } catch (Exception e) {
            e.printStackTrace();
        }
    } 

回调

public class GetPersionTypeStringCallback extends StringCallback
    {
        @Override
        public void onBefore(Request request, int id)
        {//showProgressDialog("");//显示进度加载框
        }

        @Override
        public void onAfter(int id)
        {//dismissProgressDialog();//隐藏进度加载框
        }

        @Override
        public void onError(Call call, Exception e, int id)
        {
            ToastUtil.showShortToast(MyApplication.getAppContext().getResources().getString(R.string.login_again));
            Log.w(TAG,"{onError}e="+e.toString());
        }

        @Override
        public void onResponse(String response, int id)
        {
            Log.e(TAG, "onResponse:response="+response);
            switch (id)
            {
                case 100://http
                    try {
                        if (response != null && !"".equals(response)){
                            //解析
                        }
                        else {
                            ToastUtil.showShortToast(MyApplication.getAppContext().getResources().getString(R.string.login_null_exception));
                        }
                    } catch (JSONException e) {
                        ToastUtil.showShortToast(MyApplication.getAppContext().getResources().getString(R.string.login_json_exception));
                    }catch (Exception e) {
                        ToastUtil.showShortToast(MyApplication.getAppContext().getResources().getString(R.string.login_json_exception));
                    } finally {
                    }
                    break;
                case 101://https
                    break;
            }
        }
        @Override
        public void inProgress(float progress, long total, int id)
        {
            Log.e(TAG, "inProgress:" + progress);
        }
    }

Post请求

public String LoginApi(String userName, String password,StringCallback callback)
            throws Exception {
        String result = "";
        OkHttpUtils
                .post()
                .url(getSpcyUrl(ServerApi.LOGIN_URL))
                .addParams("user.userName", userName)
                .addParams("user.password", password)
                .addParams("IS_JSON", "true")
                .addParams("loginModel", "mobile")
                .addParams("VALUE_OBJES_4_JSON", "loginUser")
                .addParams("userLoginModel", "mobile")
                .id(100)
                .tag(context)
                .build()
                .execute(callback);
         return result;
    }

调用

    private void Login(){
        String userName = "xxx";
        String passWord = "sssxxxccccvvfddfggfgfg";
        try {
            LoginLogic.Instance(MainActivity.this).LoginApi(userName, passWord, new LoginStringCallback());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

回调

public class LoginStringCallback extends StringCallback
    {
        @Override
        public void onBefore(Request request, int id)
        {//showProgressDialog("");//显示进度加载框
        }

        @Override
        public void onAfter(int id)
        {//dismissProgressDialog();//隐藏进度加载框
        }

        @Override
        public void onError(Call call, Exception e, int id)
        {
            ToastUtil.showShortToast(MyApplication.getAppContext().getResources().getString(R.string.login_again));
            Log.w(TAG,"{onError}e="+e.toString());
        }

        @Override
        public void onResponse(String response, int id)
        {
            Log.e(TAG, "onResponse:response="+response);
            switch (id)
            {
                case 100://http
                    try {
                        if (response != null && !"".equals(response)){
                            //解析登录成功信息
                            JSONObject responseObj = new JSONObject(response);
                            
                        }
                        else {
                            ToastUtil.showShortToast(MyApplication.getAppContext().getResources().getString(R.string.login_null_exception));
                        }
                    } catch (JSONException e) {
                        ToastUtil.showShortToast(MyApplication.getAppContext().getResources().getString(R.string.login_json_exception));
                    }catch (Exception e) {
                        ToastUtil.showShortToast(MyApplication.getAppContext().getResources().getString(R.string.login_json_exception));
                    } finally {
                    }
                    break;
                case 101://https
                    break;
            }
        }
        @Override
        public void inProgress(float progress, long total, int id)
        {
            Log.e(TAG, "inProgress:" + progress);
        }
    }

postString【Json数据】请求

    public String postJsonApi(PostJsonModel postJsonModel, StringCallback callback){
        String result = "";
        OkHttpUtils
                .postString()
                .url(getSpcyUrl(ServerApi.POSTJSON_URL))
                .content(new Gson().toJson(postJsonModel))
                .mediaType(MediaType.parse("application/json; charset=utf-8"))
                .id(100)
                .tag(context)
                .build()
                .execute(callback);
        return result;
    }
package com.why.project.okhttputilsdemo.model;

/**
 * Created by HaiyuKing
 * Used
 */

public class PostJsonModel {
    private String title = "";
    private String tic = "";
    private String type = "";

    public String getTic() {
        return tic;
    }

    public void setTic(String tic) {
        this.tic = tic;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }
}
PostJsonModel.java

相关文章: