OKHttp3学习之三:GET请求

需求:实现用户信息获取并在UI界面上显示

在app模块的build.gradle配置

compile 'com.squareup.okhttp3:okhttp:3.4.2'
compile 'com.squareup.picasso:picasso:2.5.2'

实现源码

public void getRequest(View view) {
    OkHttpClient client = new OkHttpClient();
    String url = SERVER_ADDRESS + "/user/info?id=1";
    Request request = new Request.Builder().url(url).get().build();

    client.newCall(request).enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {
            Log.i(TAG, "请求失败: " + e.getLocalizedMessage());
        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            if (response.isSuccessful()) {
                ResponseBody body = response.body();
                if (body != null) {
                    String result = body.string();
                    Log.i(TAG, "返回成功: " + result);
                    body.close();

                    showUserInfo(result);
                }
            }
        }
    });
}

private void showUserInfo(final String result) {
    //在主线程中实现UI更新
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            try {
                JSONObject json = new JSONObject(result);
                String id = json.optString("id");
                String username = json.optString("username");
                String head_url = json.optString("head_url");
                mTvNickName.setText(username);
                //利用Picasso图片加载框架实现头像异步加载
                Picasso.with(MainActivity.this).load(head_url).resize(100, 100).centerCrop().into(mIvAvatar);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    });
}

服务器返回数据

{
    "head_url": "http://www.appblog.cn/images/avatar.png", 
    "id": "1", 
    "username": "Joe.Ye"
}

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/02/25/okhttp3-learning-3-get-request/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
OKHttp3学习之三:GET请求
需求:实现用户信息获取并在UI界面上显示 在app模块的build.gradle配置 compile 'com.squareup.okhttp3:okhttp:3.4.2' compile 'com.squareup……
<<上一篇
下一篇>>
文章目录
关闭
目 录