如果你还不知道okhttp那真的是太OUT了,公司最近登录接口需要post请求,但是最重要的是不需要再body里面进行传值,所以有了今天这个文章!

话不多说直接上代码:

private  Call requestPostByUrl(String actionUrl, HashMap paramsMap, final ReqCallBack callBack) {        StringBuilder tempParams = new StringBuilder();        try {            int pos = 0;            for (String key : paramsMap.keySet()) {                if (pos > 0) {                    tempParams.append("&");                }                tempParams.append(String.format("%s=%s", key, URLEncoder.encode(paramsMap.get(key), "utf-8")));                pos++;            }            String requestUrl = String.format("%s/%s?%s", BASE_URL, actionUrl, tempParams.toString());            final Request request = addHeaders().post(RequestBody.create(null, "")).url(requestUrl).build();            final Call call = mOkHttpClient.newCall(request);            call.enqueue(new Callback() {                @Override                public void onFailure(Call call, IOException e) {                    failedCallBack("访问失败", callBack);                    Log.e(TAG, e.toString());                }                @Override                public void onResponse(Call call, Response response) throws IOException {                    if (response.isSuccessful()) {                        String string = response.body().string();                        Log.e(TAG, "response ----->" + string);
                        failedCallBack("服务器错误", callBack);                    }                }            });            return call;        } catch (Exception e) {            Log.e(TAG, e.toString());        }        return null;    }

以上就是我封装的请求, 最主要的就是这一句话:
addHeaders().post(RequestBody.create(null, ""))

声明为post请求,并且body为空

返回接口 请看

/** * Created by Administrator on 2017/11/15. */public interface ReqCallBack {    /**     * 响应成功     */    void onReqSuccess(T result);    /**     * 响应失败     */    void onReqFailed(String errorMsg);}

处理接口信息

我们放在了主线程中方便更新ui

小伙伴可以自己考虑

 /**     * 统一同意处理成功信息     * @param result     * @param callBack     * @param      */    private  void successCallBack(final T result, final ReqCallBack callBack) {        okHttpHandler.post(new Runnable() {            @Override            public void run() {                if (callBack != null) {                    callBack.onReqSuccess(result);                }            }        });    }    /**     * 统一处理失败信息     * @param errorMsg     * @param callBack     * @param      */    private  void failedCallBack(final String errorMsg, final ReqCallBack callBack) {        okHttpHandler.post(new Runnable() {            @Override            public void run() {                if (callBack != null) {                    callBack.onReqFailed(errorMsg);                }            }        });    }


需要用的小伙伴可直接使用 有问题 评论告诉我下,顺便点个赞呦~~



更多相关文章

  1. android mvvm livedata_Android(安卓)MVP && MVVM深度解析
  2. Android中提供的HttpURLConnection和HttpClient接口可以用来开发
  3. Android(安卓)系统(102)---Android(安卓)APP耗电优化
  4. Android随笔随想-GUI-事件分发先导篇
  5. [Android]如何做一个崩溃率少于千分之三噶应用app(7)-跨module交互
  6. 在android中使用MVP模式
  7. 使用MVP+Retrofit+RxJava实现的的Android(安卓)Demo (上)使用Nuclu
  8. 使用EasyPermissions高效处理权限
  9. Android(安卓)桌面请求录屏权限不唤起App

随机推荐

  1. Android如何判断网络状态是否良好
  2. Build Android(安卓)Kernel
  3. Android(安卓)EditText 密码框默认是小圆
  4. Android(安卓)OptionMenu
  5. Android体验系列之--AnalogClock控件
  6. Android开机自动启动程序设置
  7. Android(安卓)从网上获取图片
  8. Android学习笔记-常见报错
  9. 打开android默认浏览器
  10. Android判断app是否是第一次运行