0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙OS开发实战:【网络管理HTTP数据请求】

jf_46214456 2024-04-01 16:31 次阅读

一、场景介绍

应用通过HTTP发起一个数据请求,支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。

二、 接口说明

HTTP数据请求功能主要由http模块提供。

使用该功能需要申请ohos.permission.INTERNET权限。

涉及的接口如下表,具体的接口说明请参考API文档。

接口名功能描述
createHttp()创建一个http请求。
request()根据URL地址,发起HTTP网络请求。
destroy()中断请求任务。
on(type: 'headersReceive')订阅HTTP Response Header 事件。
off(type: 'headersReceive')取消订阅HTTP Response Header 事件。
once('headersReceive')8+订阅HTTP Response Header 事件,但是只触发一次。

熟悉[鸿蒙]文档

鸿蒙OS开发更多内容↓点击HarmonyOSOpenHarmony技术
鸿蒙技术文档《鸿蒙NEXT星河版开发学习文档》

搜狗高速浏览器截图20240326151450.png

三、request接口开发步骤

1.从@ohos.net.http.d.ts中导入http命名空间。

2.调用createHttp()方法,创建一个HttpRequest对象。

3.调用该对象的on()方法,订阅http响应头事件,此接口会比request请求先返回。可以根据业务需要订阅此消息。

4.调用该对象的request()方法,传入http请求的url地址和可选参数,发起网络请求。

5.按照实际业务需要,解析返回结果。

6.调用该对象的off()方法,取消订阅http响应头事件。

7.当该请求使用完毕时,调用destroy()方法主动销毁。

// 引入包名
import http from '@ohos.net.http';

// 每一个httpRequest对应一个HTTP请求任务,不可复用
let httpRequest = http.createHttp();
// 用于订阅HTTP响应头,此接口会比request请求先返回。可以根据业务需要订阅此消息
// 从API 8开始,使用on('headersReceive', Callback)替代on('headerReceive', AsyncCallback)。 8+
httpRequest.on('headersReceive', (header) = > {
    console.info('header: ' + JSON.stringify(header));
});
httpRequest.request(
    // 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定
    "EXAMPLE_URL",
    {
        method: http.RequestMethod.POST, // 可选,默认为http.RequestMethod.GET
        // 开发者根据自身业务需要添加header字段
        header: {
            'Content-Type': 'application/json'
        },
        // 当使用POST请求时此字段用于传递内容
        extraData: {
            "data": "data to send",
        },
        expectDataType: http.HttpDataType.STRING, // 可选,指定返回数据的类型
        usingCache: true, // 可选,默认为true
        priority: 1, // 可选,默认为1
        connectTimeout: 60000, // 可选,默认为60000ms
        readTimeout: 60000, // 可选,默认为60000ms
        usingProtocol: http.HttpProtocol.HTTP1_1, // 可选,协议类型默认值由系统自动指定
    }, (err, data) = > {
        if (!err) {
            // data.result为HTTP响应内容,可根据业务需要进行解析
            console.info('Result:' + JSON.stringify(data.result));
            console.info('code:' + JSON.stringify(data.responseCode));
            // data.header为HTTP响应头,可根据业务需要进行解析
            console.info('header:' + JSON.stringify(data.header));
            console.info('cookies:' + JSON.stringify(data.cookies)); // 8+
        } else {
            console.info('error:' + JSON.stringify(err));
            // 取消订阅HTTP响应头事件
            httpRequest.off('headersReceive');
            // 当该请求使用完毕时,调用destroy方法主动销毁
            httpRequest.destroy();
        }
    }
);
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HTTP
    +关注

    关注

    0

    文章

    467

    浏览量

    30324
  • 鸿蒙系统
    +关注

    关注

    183

    文章

    2628

    浏览量

    65277
  • HarmonyOS
    +关注

    关注

    79

    文章

    1859

    浏览量

    29267
  • OpenHarmony
    +关注

    关注

    23

    文章

    3320

    浏览量

    15161
  • 鸿蒙OS
    +关注

    关注

    0

    文章

    151

    浏览量

    4281
收藏 人收藏

    评论

    相关推荐

    鸿蒙OS崛起,鸿蒙应用开发工程师成市场新宠

    应用的形态也在发生着翻天覆地的变化。作为全球领先的移动操作系统和智能终端制造商,华为公司自主研发的鸿蒙OS应运而生,致力于构建一个统一的分布式操作系统,为各行各业的应用开发带来全新的可能性。 一、
    发表于 04-29 17:32

    鸿蒙OS开发实例:【HarmonyHttpClient】网络框架

    鸿蒙上使用的Http网络框架,里面包含纯Java实现的HttpNet,类似okhttp使用,支持同步和异步两种请求方式;还有鸿蒙版retro
    的头像 发表于 04-12 16:58 304次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OS</b><b class='flag-5'>开发</b>实例:【HarmonyHttpClient】<b class='flag-5'>网络</b>框架

    鸿蒙原生应用开发-网络管理模块总述

    一、网络管理模块主要提供以下功能: HTTP数据请求:通过HTTP发起一个
    发表于 04-08 09:45

    鸿蒙OS开发实例:【窥探网络请求

    HarmonyOS 平台中使用网络请求,需要引入 "@ohos.net.http", 并且需要在 module.json5 文件中申请网络权限, 即 “ohos.permission.
    的头像 发表于 04-01 16:11 177次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OS</b><b class='flag-5'>开发</b>实例:【窥探<b class='flag-5'>网络</b><b class='flag-5'>请求</b>】

    鸿蒙原生应用开发-网络管理HTTP数据请求

    一、场景介绍 应用通过HTTP发起一个数据请求,支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。 二、接口说明 HTTP
    发表于 03-29 17:51

    鸿蒙OS(ArkTS) 案例:【使用http网络请求框架加载验证码】

    1.参数里面的 expectDataType 需要设置为 http.HttpDataType.ARRAY_BUFFER; 2. 结果转换为ArrayBuffer,let result = responseResult.result as ArrayBuffer
    的头像 发表于 03-27 17:35 740次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OS</b>(ArkTS) 案例:【使用<b class='flag-5'>http</b><b class='flag-5'>网络</b><b class='flag-5'>请求</b>框架加载验证码】

    鸿蒙开发实战网络请求库【axios】

    [Axios] ,是一个基于 promise 的网络请求库,可以运行 node.js 和浏览器中。本库基于[Axios]原库v1.3.4版本进行适配,使其可以运行在 OpenHarmony,并沿用其现有用法和特性。
    的头像 发表于 03-25 16:47 888次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b>:<b class='flag-5'>网络</b><b class='flag-5'>请求</b>库【axios】

    鸿蒙实战项目开发:【短信服务】

    数据管理 电话服务 分布式应用开发 通知与窗口管理 多媒体技术 安全技能 任务管理 WebGL 国际化开发 应用测试 DFX面向未来设计
    发表于 03-03 21:29

    2024款鸿蒙OS 最新HarmonyOS Next_HarmonyOS4.0系列教程分享

    鸿蒙的出现,标志着中国科技的崛起。HarmonyOS就是我们说的华为鸿蒙系统,截止到2023年8月4日已有超过7亿台设备搭载了鸿蒙OS系统。据多家媒体报道,2024年国内有21所985
    发表于 02-28 10:29

    1月18号“纯鸿蒙”千帆启航,程序员预备!

    …… 《鸿蒙开发进阶》http://qr61.cn/oWQPaX/qU3VHZO 1.Stage模型入门 2.网络管理 3.
    发表于 01-16 22:13

    【EsDA 应用】快速实现串口转HTTP请求

    本文将基于EsDA开发套件快速实现将串口数据转换为HTTP请求的应用开发,实现串口设备与网络服务
    的头像 发表于 11-09 08:25 492次阅读
    【EsDA 应用】快速实现串口转<b class='flag-5'>HTTP</b><b class='flag-5'>请求</b>

    鸿蒙 OS 应用开发初体验

    的操作系统平台和开发框架。HarmonyOS 的目标是实现跨设备的无缝协同和高性能。 DevEco Studio 对标 Android Studio,开发鸿蒙 OS 应用的 IDE。
    发表于 11-02 19:38

    【中秋国庆不断更】HarmonyOS网络管理开发HTTP与WebSocket

    一、网络管理开发概述 网络管理模块主要提供以下功能: ● ​​HTTP
    发表于 09-27 15:40

    如何测试HTTP请求示例

    电子发烧友网站提供《如何测试HTTP请求示例.zip》资料免费下载
    发表于 07-13 11:35 1次下载
    如何测试<b class='flag-5'>HTTP</b><b class='flag-5'>请求</b>示例

    如何使用 ESP-AT实现HTTP请求

    ESP-AT作为乐鑫开发的可直接用于量产的物联网应用固件,可以简单完成网络的连接,以及设备与服务器之间的数据传输。本文将介绍如何使用 ESP-AT实现HTTP
    的头像 发表于 05-23 17:12 813次阅读
    如何使用 ESP-AT实现<b class='flag-5'>HTTP</b><b class='flag-5'>请求</b>