文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

HarmonyOS ArkUI之开发基础(网络请求)

2024-12-02 14:52

关注

想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com

简介

前段时间一直研究ArkUI中的声明式开发,开发了一些demo,但都是界面相关的,相对来说比较基础,也比较简单。所以研究一下其他的,现在成熟的APP都会有网络交互,所以记录一篇网络请求相关的。

本项目界面搭建基于ArkUI中TS扩展的声明式开发范式,关于语法和概念直接看官网官方文档地址:

基于TS扩展的声明式开发范式1、基于TS扩展的声明式开发范式2

本文介绍开发基础知识(网络请求):

数据接口:聚合免费API(天气预报)

网络请求:ArkUI自带的网络请求

效果演示


开发步骤

1、声明网络请求权限

在 entry 下的 config.json 中 module 字段下配置权限

  1. "reqPermissions": [ 
  2.    { 
  3.       "name""ohos.permission.INTERNET" 
  4.    } 

2、支持http明文请求

默认支持https,如果要支持http,在 entry 下的 config.json 中 deviceConfig 字段下配置

  1. "default": { 
  2.   "network": { 
  3.     "cleartextTraffic"true 
  4.   } 

3、创建HttpRequest

  1. // 导入模块 
  2. import http from '@ohos.net.http'
  3. // 创建HttpRequest对象 
  4. let httpRequest = http.createHttp(); 

4、发起请求

GET请求(默认为GET请求)

  1. // 请求方式:GET 
  2. getRequest() { 
  3.   // 每一个httpRequest对应一个http请求任务,不可复用 
  4.   let httpRequest = http.createHttp() 
  5.   let url = 'http://apis.juhe.cn/simpleWeather/query?key=397c9db4cb0621ad0313123dab416668&city=北京' 
  6.   httpRequest.request(url, (err, data) => { 
  7.     // 处理数据 
  8.   }) 

POST请求

目前发现API的BUG:看官方文档method可以设置为字符串,从源码得知method的类型为:RequestMethod,但是设置 method: http.RequestMethod.POST 请求数据报错,设置成 method: http.POST 可以

  1. // 请求方式:POST 
  2. postRequest() { 
  3.   // 每一个httpRequest对应一个http请求任务,不可复用 
  4.   let httpRequest = http.createHttp() 
  5.   let url = 'http://apis.juhe.cn/simpleWeather/query' 
  6.   httpRequest.request(url, 
  7.     { 
  8.       // 看源码得知method的类型为:RequestMethod 
  9.       // 但是设置 method: http.RequestMethod.POST 报错 
  10.       // 设置成 method: http.POST 可以 
  11.       method: http.POST, 
  12.       extraData: { 
  13.         'key''397c9db4cb0621ad0313123dab416668'
  14.         'city''北京' 
  15.       } 
  16.     }, 
  17.     (err, data) => { 
  18.       // 处理数据 
  19.     }) 

5、解析数据(简单示例)

(1)网络请求到的json字符串

  1.     "name":"梁迪迪"
  2.     "age":"26"
  3.     "sex":"男" 

 (2)创建相应的对象

  1. class User { 
  2.   name: string // 姓名 
  3.   age: string // 年龄 
  4.   sex: string // 性别 

(3)解析数据

  1. // 请求方式:GET 
  2. getRequest() { 
  3.   // 每一个httpRequest对应一个http请求任务,不可复用 
  4.   let httpRequest = http.createHttp() 
  5.   let url = '' 
  6.   httpRequest.request(url, (err, data) => { 
  7.     // 处理数据 
  8.     if (!err) { 
  9.       if (data.responseCode == 200) { 
  10.         // 解析数据 
  11.         var userUser = JSON.parse(JSON.stringify(data.result)) 
  12.       } 
  13.     } 
  14.   }) 

想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com

 

来源:鸿蒙社区内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯