基于 OkHttpUtils 之 GET、POST、PUT 三种网络请求方式示例

话不多说,开发Android App网络请求莫过OkHttpUtils方便快捷了,平时用的最多可能是get和post请求了,最近用到put,这里记录一下以便码友们参考。

一、引入库:

implementation 'com.google.code.gson:gson:2.8.6'
implementation 'com.squareup.okhttp3:okhttp:3.8.1'
implementation 'com.zhy:okhttputils:2.6.2'

二、GET请求示例:

private void requestGetData() {
        String url = kNET_BASE_URL + "getApi";
        OkHttpUtils.get()
                .url(url)
                .addParams("type", String.valueOf(kDEVICE_TYPE))
                .addParams("state", String.valueOf(1))
                .build()
                .execute(new StringCallback() {
                    @Override
                    public void onError(Call call, Exception e, int id) {
                        Log.i("TAG", e.toString());
                    }

                    @Override
                    public void onResponse(String response, int id) {
                        Gson gson = new Gson();
                        RootModel rootModel = gson.fromJson(response, RootModel.class);

                        Log.i("TAG", response);

                        if (rootModel.getCode() == 0) { //成功
                            Log.i("TAG", "获取成功");

                        } else {
                            Log.i("TAG", "获取失败");
                        }
                    }
                });

    }

三、POST请求示例:

private void requestPostData(String contentStr) {

        String url = kNET_BASE_URL + "postApi";

        Map<String, String> params = new HashMap<>();
        params.put("nickname", contentStr);

        OkHttpUtils.post()
                .url(url)
                .params(params)
                .build()
                .execute(new StringCallback() {
            @Override
            public void onError(Call call, Exception e, int id) {
            }

            @Override
            public void onResponse(String response, int id) {
                mLoadingLayout.setVisibility(View.GONE);

                Log.i(LOG_TAG, response);

                Gson gson = new Gson();
                BoolValueBean boolValueBean = gson.fromJson(response, BoolValueBean.class);

                if (boolValueBean.getSuccess() == 1) { //成功
                    Log.i(LOG_TAG, "成功");
                    });
                } else {
                      Log.i(LOG_TAG, "失败");
                }
            }
        });
    }

三、PUT请求示例:

private void requestPut(int videoid, double progress, double length) {
        String url = kNET_BASE_URL + "putApi";

        FormBody build = new FormBody.Builder()
                .add("id", String.valueOf(videoid))
                .add("progress", String.valueOf(progress))
                .add("length", String.valueOf(length))
                .build();

        OkHttpUtils.put().requestBody(build).url(url)
                .build()
                .execute(new StringCallback() {
                    @Override
                    public void onError(Call call, Exception e, int id) {
                        Log.i("TAG", e.toString());
                    }

                    @Override
                    public void onResponse(String response, int id) {
                        Gson gson = new Gson();
                        RootModel rootModel = gson.fromJson(response, RootModel.class);

                        Log.i("TAG", response);

                        if (rootModel.getCode() == 0) { //成功
                            Log.i("TAG", "更新成功");
                        } else {
                            Log.i("TAG", "更新失败");
                        }
                    }
                });

    }

四、感谢 OkHttpUtils 之作者。

发布了71 篇原创文章 · 获赞 51 · 访问量 26万+

猜你喜欢

转载自blog.csdn.net/mapboo/article/details/103487309