关于okhttp3的bug

今天在做郭霖的大神的酷欧天气App,在代码运行的时候网络请求的事时候,老是运行onFalure()方法,不去执行onResponse方法,然后我就开始用debug调试,结果还是找不到问题出现哪里,然后我就上网找找解决办法。

  private void queryFromServer(String address, final String type) {
        showProgressDialog();
        HttpUtil.sendOkHttpRequest(address, new Callback() {
            @Override
            public void onResponse(Call call, Response response) throws IOException {
                boolean result = false;
                String responseText = response.body().string();
                Log.d("onResponse", "onResponse: "+responseText);
                if ("province".equals(type)) {
                    result = Utility.handleProvinceResponse(responseText);
                    Log.d("province =====>", "onResponse: "+result);
                } else if ("city".equals(type)) {
                    result = Utility.handleCitiesResponse(responseText,
                            selectedProvince.getId());
                } else if ("county".equals(type)) {
                    result = Utility.handleCountyResponse(responseText,
                            selectedCity.getId());
                }
                if (result) {
                    getActivity().runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            closeProgressDialog();
                            if ("province".equals(type)) {
                                queryProvinces();
                            } else if ("city".equals(type)) {
                                queryCities();
                            } else if ("county".equals(type)) {
                                queryCounties();
                            }
                        }
                    });
                }
            }
            @Override
            public void onFailure(Call call, IOException e) {
                Log.d("onFailure", "onFailure: ");
// 通过runOnUiThread()方法回到主线程处理逻辑
                getActivity().runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        closeProgressDialog();
                        Toast.makeText(getContext(), "加载失败", Toast.LENGTH_SHORT).
                                show();
//                        Log.d("zjjadsdasd=======", "run: "+result);
                    }
                });
            }
        });
    }

看到网上说:在res/xml下创建network_security_config.xml

 

里面添加代码:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>

     <!--默认允许所有网址使用非安全连接-->
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

  最后,在manifest文件中的application中加入下面代码就解决了

 android:networkSecurityConfig="@xml/network_security_config"

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值