鸿蒙接口请求,怎么写着写着全是重复代码?
·
大家好,我是程序猿米饭。
用 http 模块把接口调通并不难,可真正放进 App,事情就多起来了:请求对象用完要释放,几个页面的公共配置要统一,出错后还得找出是哪次请求出了问题,如果这些事情都跟着页面各写一份,后面改起来就很折腾。
这次我把 RCP 用进了资料阅读 App「米饭小册」,从查资料、看详情和收藏这几个操作入手,把网络请求里反复要写的部分整理到了一起。
可以把它想成寄快递:常用地址先存好,每件包裹带个编号,临时不寄了,就撤掉对应的那一单。

放到代码里,公共地址、请求头和超时设置可以放进同一个 Session,让几个页面共用;我们再在统一入口给请求加上编号,出错时就能拿它对照手机和服务端的日志;搜索词换了,页面也能取消自己上一次发出的请求,不影响其他页面正在做的事。
不过,RCP 发出的仍然是 HTTP/HTTPS 请求,项目也照样需要自己的网络封装。它让这些事情更方便集中处理,返回的数据能不能用、失败以后该不该重试,仍然得按实际业务来判断。
还有一个容易漏掉的细节:把旧请求取消了,也不代表旧结果一定不会更新到页面上。 旧响应可能已经进入处理流程,所以米饭小册还会核对结果属于哪一次搜索,只让最新一次更新列表。
想看具体怎么写,微信搜索公众号 「程序猿米饭」,查看 《鸿蒙 RCP 上手后,我再也不想手动写 HTTP 了》 穿越链接。里面有米饭小册的实际代码节选、两种请求方式的对照,以及搜索结果为什么还要再检查一次。

我是程序猿米饭,记录鸿蒙开发,也分享把效果一步步做进实际页面的过程。
更多推荐

所有评论(0)