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

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

一、申请网络权限

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

{
  "module": {
    
    ...

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

二、导入 http 模块

import http from '@ohos.net.http';

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

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

    let httpRequest = http.createHttp()
    

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

  2. 发起网络请求

    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. 处理响应结果

    .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 返回值类型

相关推荐

  1. HarmonyOS网络连接 - Http 请求数据

    2024-07-22 15:26:01       21 阅读
  2. 鸿蒙HarmonyOS-HTTP网络数据请求

    2024-07-22 15:26:01       58 阅读
  3. harmonyOS HTTP数据请求能用类

    2024-07-22 15:26:01       39 阅读
  4. Harmonyos系统使用http访问网络和应用数据管理

    2024-07-22 15:26:01       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 15:26:01       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 15:26:01       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 15:26:01       45 阅读
  4. Python语言-面向对象

    2024-07-22 15:26:01       55 阅读

热门阅读

  1. C#中的Func

    2024-07-22 15:26:01       15 阅读
  2. vscode anaconda jupyternotebook R Python配置

    2024-07-22 15:26:01       18 阅读
  3. 英语(二)-汇总

    2024-07-22 15:26:01       18 阅读
  4. 哪些系统需要进行等级保护

    2024-07-22 15:26:01       19 阅读
  5. oops使用笔记

    2024-07-22 15:26:01       15 阅读
  6. CDN绕过

    2024-07-22 15:26:01       17 阅读
  7. C#中的Action

    2024-07-22 15:26:01       18 阅读
  8. CPU工作原理

    2024-07-22 15:26:01       21 阅读
  9. 以线程完成并发的UDP服务端

    2024-07-22 15:26:01       12 阅读
  10. 自动以当前域用户身份登录

    2024-07-22 15:26:01       17 阅读
  11. Vue3如何实现响应式

    2024-07-22 15:26:01       20 阅读