从微信小程序到鸿蒙js开发【03】——fetch获取数据&简单天气预报 原创 精华
Chris.
发布于 2021-2-4 15:13
2.0w浏览
6收藏
在微信小程序中,若需要向远程服务器请求数据,使用wx.request接口即可。
那么在鸿蒙js开发中,请求远程服务器需要如下几步:
1、在config.json配置网络权限和信任域名。
网络权限的配置是在module.reqPermissions中,配置以下三个权限。工具有提示,还是比较友好的。
信任域名的配置是在deviceConfig中,默认是一个空对象,需配置成如下形式。
在domains数组中,subdomains为是否信任下级域名,name为域名,无需填写协议。如果请求的服务器域名未配置,是无法请求成功的,且工具不会报错。这里一定记得配置服务器域名。
2、在js文件中引入fetch模块。
鸿蒙js请求远程服务器的模块为fetch,在js文件的最上方需引入该模块。
这里也是有提示的。
3、调用fetch.fetch发送请求。
来看一下fetch模块的封装,请求的参数,响应的类型,回调函数都可在对象中定义,和wx.request()基本一致。
比如我在页面初始化执行的方法onInit()中请求聚合数据的天气预报接口,就可以这样写:
4、处理返回数据需调用JSON.parse()。
鸿蒙js开发目前调试功能尚不方便,虽有console.log(), console.info()等方法用于打印日志,但实际运行时并未找到日志的打印。所以我只能在视图中划出一小块区域用于调试。
这里看到虽然responseType已设置为json,但用' . '取其中属性时仍会红线报错,且页面中可以看出并未取到值,可以猜测此时的res.data仍为string类型,需调用JSON.parse()将其转为json类型,随后问题解决。
附上天气预报这一部分的代码:
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2021-2-6 16:56:50修改
赞
10
收藏 6
回复
10
15
6
相关推荐
在鸿蒙调用天气信息,学到了
聚合数据天气预报接口:https://www.juhe.cn/docs/api/id/73
非常好,期待更多
👍👍👍
在HiLog框里,是可以看到console.info()打印的信息的.
是的,这个后来找到了~感谢指正
请问一下这是为什么 ,我也是根据你的配置来的,就说没有网络
检查一下你需要请求的域名是否加到domains中
需要动态请求怎么进行地址拼接呢,我静态请求可以成功,拼接的请求就一直报错
问题解决了吗?我本地也报:[pc Preview]: no internet
用模拟器调试,别用预览器
域名加了,还是报的这个错
顺便建议可以直接查找含有”app log“的日志,不过这个日志也有bug有的时候打印不出来,就很怪异
好的收到
完整的项目能给一下吗