更多内容请访问:鸿蒙科技社区https://harmonyos.51cto.com1。原始的网络访问,加上多线程,会使程序臃肿。网络请求在现代应用程序开发中必不可少。我们熟悉的网络请求框架有不少,比如HttpClient、OkHttp、volley。确实很方便,但是鸿蒙还不能用,还好我们有HttpURLConnection。使用它进行网络请求的示例代码如下图所示(不用仔细研究):相信你想说:HttpURLConnection虽然麻烦了点,但是可以用。然而,这并不是我们与网络访问有关的全部。由于网络操作比较耗时且不稳定,所以我们必须在子线程中执行上述代码工作。当网络请求有响应结果时,我们需要回到主线程更新UI,这让我们的程序又胖了。圈。如果你要求,再多一点怎么样?我们的程序胖了好几倍...2.封装多线程和网络访问,给程序瘦身。我们希望的网络请求如下:1.隐藏网络访问细节;2.优雅地处理UI更新。基于以上两点,我封装了一套Http请求的工具类,最终网络访问会变成这样:ZZRHttp.get(url,newZZRCallBack.CallBackString(){@OverridepublicvoidonFailure(intcode,StringerrorMessage){//http访问错误,这部分工作在主线程,可以更新UI等操作}@OverridepublicvoidonResponse(Stringresponse){//http访问成功,这部分工作在主线程,可以更新UI等操作。}});代码分析:这个get方法可以在子线程中完成基于http的网络访问。当访问成功或失败时,分别回调onResponse或onFailure方法。这两个方法在主线程中回调,所以可以更新UI。这套Http工具的源码我已经上传到github开源了,地址如下:https://github.com/zzrv5/ZZRHttp3。鸿蒙Http请求操作步骤:3.1添加网络访问权限:在config.json文件中添加模块,网络访问权限,代码如下:"module":{"reqPermissions":[{"name":"ohos.permission.INTERNET"}],...3.2设置访问方式鸿蒙默认为https访问方式,如果你的请求URL以http开头,请在config.json文件的deviceConfig下添加如下设置:"deviceConfig":{"default":{"network":{"cleartextTraffic":true}}},3.3添加ZZRHttp依赖在build.gradle文件的dependencies中,添加如下配置引入ZZRhttp:dependencies{implementation'com.zzrv5.zzrhttp:ZZRHttp:1.0.1'...}3.4网络访问就这么简单,代码如下:ZZRHttp.get(url,newZZRCallBack.CallBackString(){@OverridepublicvoidonFailure(intcode,StringerrorMessage){//http访问错误,这部分工作在主线程,可以更新UI等操作。}@OverridepublicvoidonResponse(Stringresponse){//http访问成功,这部分工作在主线程,可以更新UI等操作。}});4.关于我我是ZZR老师,为什么叫ZZR老师是因为ZZR是我名字的缩写,同学你可以看我的鸿蒙视频课程:https://edu.51cto.com/course/25200.html.更多信息请访问:Harmonyos.51cto.com,与华为官方合作打造的鸿蒙技术社区
