zoukankan      html  css  js  c++  java
  • 《第一行代码》14章cool weather酷欧天气 网络请求相关问题

    按照书中的代码敲了一遍,写到了第二阶段,在尝试运行的时候发现会一直正在加载,并且出现“加载失败”的提示,排除掉genymotion模拟器联网问题以后,用了大半天才找到解决方案,但仍不是完美方案,稍后会提到。

    在使用Debug查找错误时,发现在跑到

    HttpUtil.sendOkHttpRequest(address, new Callback() {
    @Override
        public void onFailure(@NonNull Call call, @NonNull IOException e) {
            ...
        }
     
        @Override
        public void onResponse(@NonNull Call call, @NonNull Response response)  {
            ...
        }
    });
    

    这段代码时,直接就跳转到结尾了,百度也只发现一个跟我一样的情况,但那个还没解决。

    最后在看okhttp同步异步请求的时候,发现少写了一些东西

    新建res/xml/network_security_config.xml

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

    之后在AndroidManifest.xml的application中添加android:networkSecurityConfig="@xml/network_security_config"

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.coolweather">
        <uses-permission android:name="android.permission.INTERNET"/>
        <application
            android:networkSecurityConfig="@xml/network_security_config"
            ...
            ...
        </application>
     
    </manifest>
    

    再次运行就不会出现加载失败的提示,不过仍旧会显示一直加载,将项目关闭重新运行打开就可以了。之后再点击城市的话,也会显示一直加载,依旧是项目重新运行后可以点开,但再次点击之前点过的不会显示一直加载,只有没点过的会显示,目前不知道如何解决。

  • 相关阅读:
    printcap
    browser-ua
    PHP 开发 APP 接口 学习笔记与总结
    Java实现 LeetCode 72 编辑距离
    Java实现 LeetCode 72 编辑距离
    Java实现 LeetCode 72 编辑距离
    Java实现 LeetCode 71 简化路径
    Java实现 LeetCode 71 简化路径
    Java实现 LeetCode 71 简化路径
    Java实现 LeetCode70 爬楼梯
  • 原文地址:https://www.cnblogs.com/yhnCoder/p/15066457.html
Copyright © 2011-2022 走看看