• 《第一行代码》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>
    

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

  • 相关阅读:
    python 的时间复杂度
    python之进制转换
    进程、线程、协程
    [GO]gtk的windows环境搭建
    [GO]并的爬取捧腹的段子
    [GO]并发的网络爬虫
    [GO]百度贴吧的爬虫
    [operator]jenkins+gitlab/Webhook自动构建发布
    [GO]并发实现聊天室服务器
    [GO]文件的收发服务器
  • 原文地址:https://www.cnblogs.com/yhnCoder/p/15066457.html
Copyright © 2020-2023  润新知