okhttp的简单使用

1.在app的build.gradle中添加依赖库
implementation 'com.squareup.okhttp3:okhttp:3.4.1'
2.在AndroidMainfest中添加网络权限
<uses-permission android:name="android.permission.INTERNET" />
3.如果是新版本的还需要允许http请求(我这里是添加配置文件)
在AndroidMainfest中的application中添加
android:networkSecurityConfig="@xml/network_security_config"
network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>

4.简单使用

// 加载网路图片数据
private void loadDatas(int page) {
    // 创建一个请求体
    Request request = new Request.Builder().url(mUrl + page).build();
    OkHttpClient okHttpClient = new OkHttpClient();

    okHttpClient.newCall(request).enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {
            Log.i("TAG", "加载错误 IOException=" + e.toString());
            e.printStackTrace();
        }

        @Override
        public void onResponse(Call call, Response response) throws IOException         {
            //如果响应成功
            if (response.isSuccessful()) {
                //获得响应体的结果
                String result = response.body().string();
                try {
                    JSONObject json = new JSONObject(result);
                    // 获得了一个array的几何
                    JSONArray array = new JSONArray(json.getString("results"));
                    // 看见几何或者数组 想要拿到里面的东西需要进行for循环
                    for (int i = 0; i < array.length(); i++) {
                        //获取一个json对象
                        JSONObject jsonObject = array.getJSONObject(i);
                        String urls = jsonObject.getString("url");
                        Log.e("tag", "========== url: " + urls);
                        mUrls.add(urls);
                    }
                    // 通过handle来到主线程修改Ui
                    mHandler.sendEmptyMessage(2);

                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

        }
    });

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容