【HarmonyOS】网络连接 - Http 请求数据

在日常开发应用当中,应用内部有很多数据并不是保存在应用内部,而是在服务端。所以就需要向服务端发起请求,由服务端返回数据。这种请求方式就是 Http 请求。

一、申请网络权限

module.json5 文件中,添加网络权限:

json 复制代码
{
  "module": {
    
    ...

    "requestPermissions": [
      {
        "name": "ohos.permission.INTERNET",
        "usedScene": {
          "when": "always"
        }
      }
    ]
  }
}

二、导入 http 模块

ts 复制代码
import http from '@ohos.net.http';

三、使用 http 模块发送请求,处理响应

  1. 创建一个 http 的请求对象

    ts 复制代码
    let httpRequest = http.createHttp()

    createHttp() 方法创建的对象是不可复用的,也就是说利用它创建的对象发请求,发一次就不能再发请求了,只能发一次,下次再发还得创建一个新的 request 对象。

  2. 发起网络请求

    ts 复制代码
    httpRequest.request(
      'https://www.wutianhao.com',
      {
          method: http.RequestMethod.GET,
          extraData: { 'param1': 'value1' }
      }
    )

    request() 方法接收两大参数:

    • url:请求的 URL 路径
    • options:请求选项 HttpRequestOptions
      HttpRequestOptions 支持的字段:
    名称 类型 描述
    method RequestMethod 请求方式,GET、POST、PUT、DELETE 等
    extraData string 或 Object 请求参数
    header Object 请求头字段
    connectTimeout number 连接超时时间,单位 ms,默认是 60000 ms
    readTimeout number 读取超时时间,单位 ms,默认是 60000 ms
  3. 处理响应结果

    ts 复制代码
    .then((resp: http.HttpResponse) => {
      if (resp.responseCode === 200) {
        // 请求成功
      }
    })
    .catch((err: Error) => {
       // 请求失败
    })

    整个请求是通过异步事件处理的,凡是这种异步任务都会返回一个 Promise 结果。Promise 顾名思义就是许诺,它里面存放的是未来会完成的结果。给 Promise 添加成功和失败的函数,将来,如果这个异步事件处理完,就会返回相应的回调。
    Promise 提供了两个方法:

    • then():添加成功回调函数,当异步事件处理成功时,会调用这个函数。
    • catch():添加失败回调函数,当异步事件处理失败时,会调用这个函数。
      异步任务发的是 Http 请求,因此,如果成功得到的自然就是 Http 的响应结果,也就是 HttpResponse。不过需要注意这个 response 并不是咱们想要的那个直接的数据,这里采用 Http 协议,所以它返回的是一种通用的 Http 响应结果。

    HttpResponse 支持的字段:

    名称 类型 描述
    responseCode ResponseCode 响应状态码
    header Object 响应头
    cookies string 响应返回的 cookies
    result string或Object 响应体,默认是 JSON 字符串
    resultType HttpDataType 返回值类型
相关推荐
小冷爱学习!33 分钟前
华为动态路由-OSPF-完全末梢区域
服务器·网络·华为
2501_904447741 小时前
华为发力中端,上半年nova14下半年nova15,大力普及原生鸿蒙
华为·智能手机·django·scikit-learn·pygame
MarkHD2 小时前
第十八天 WebView深度优化指南
华为·harmonyos
塞尔维亚大汉3 小时前
OpenHarmony(鸿蒙南向)——平台驱动开发【MIPI CSI】
harmonyos·领域驱动设计
别说我什么都不会3 小时前
鸿蒙轻内核M核源码分析系列十五 CPU使用率CPUP
操作系统·harmonyos
feiniao86514 小时前
2025年华为手机解锁BL的方法
华为·智能手机
塞尔维亚大汉5 小时前
OpenHarmony(鸿蒙南向)——平台驱动开发【I3C】
harmonyos·领域驱动设计
VVVVWeiYee5 小时前
BGP配置华为——路径优选验证
运维·网络·华为·信息与通信
今阳6 小时前
鸿蒙开发笔记-6-装饰器之@Require装饰器,@Reusable装饰器
android·app·harmonyos
余多多_zZ7 小时前
鸿蒙初学者学习手册(HarmonyOSNext_API14)_组件截图(@ohos.arkui.componentSnapshot (组件截图) )
学习·华为·harmonyos·鸿蒙·鸿蒙系统