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

    文章

    531

    浏览量

    34849
  • 鸿蒙系统
    +关注

    关注

    183

    文章

    2642

    浏览量

    69337
  • HarmonyOS
    +关注

    关注

    80

    文章

    2146

    浏览量

    35567
  • OpenHarmony
    +关注

    关注

    31

    文章

    3926

    浏览量

    20715
  • 鸿蒙OS
    +关注

    关注

    0

    文章

    192

    浏览量

    5304
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【汇思博SEEK100开发板试用体验】在开发鸿蒙OS搭建QT开发环境

    来访问硬件资源,例如使用鸿蒙的设备管理 API 来获取摄像头设备实例,然后在 Qt 代码中进行调用。又例如,如果要实现网络通信功能,可以使用 Qt 的网络模块,如 QTcpSocke
    发表于 08-24 18:34

    【汇思博SEEK100开发板试用体验】04 网络连接及获取和风天气数据

    (‘dataSendProgress’)^{11+}:取消订阅HTTP网络请求数据发送进度事件。 2.4 开发步骤 从@kit.NetworkKit中导入
    发表于 07-08 19:26

    鸿蒙5开发宝藏案例分享---一多开发实例(音乐)

    各位开发者小伙伴们好呀!今天咱们来点硬核干货!最近在鸿蒙文档中心挖到一座“金矿”——官方竟然暗藏了100+实战案例,从分布式架构到交互动效优化应有尽有!这些案例不仅藏着华为工程师的私房技巧,还直接
    的头像 发表于 06-30 11:54 617次阅读

    鸿蒙5开发宝藏案例分享---Web开发优化案例分享

    , 提前和服务器建立好Socket连接 (甚至完成TLS握手)。等用户真要访问时,直接在这个“VIP通道”上传数据! 效果: 砍掉DNS解析和建连时间,让网络请求“起跑”更快。 代价: 可能提前
    发表于 06-12 17:20

    鸿蒙5开发宝藏案例分享---点击完成时延分析

    ?** 鸿蒙完成时延优化实战指南:让你的应用丝滑如飞!** 在移动端开发中, 完成时延就是用户体验的生命线 !今天带你深入鸿蒙完成时延优化,揭秘官方文档中的宝藏技巧,让你的应用告别卡顿
    发表于 06-12 17:03

    鸿蒙5开发宝藏案例分享---性能体验设计

    (loadNonCriticalRes) }) } } 分段加载技巧 : 首屏元素≤15个 图片使用WebP格式 避免启动时网络请求 结语:流畅是设计出来的! 看完这些案例是不是发现鸿蒙的性能优化其实有
    发表于 06-12 16:45

    鸿蒙5开发宝藏案例分享---埋点开发实战指南

    鸿蒙埋点开发宝藏指南:官方案例实战解析,轻松搞定数据追踪! 大家好呀!我是HarmonyOS开发路上的探索者。最近在折腾应用埋点时,意外发现
    发表于 06-12 16:30

    鸿蒙5开发宝藏案例分享---切面编程实战揭秘

    鸿蒙切面编程(AOP)实战指南:隐藏的宝藏功能大揭秘! 大家好!今天在翻鸿蒙开发者文档时,意外发现了官方埋藏的「切面编程」宝藏案例!实际开发
    发表于 06-12 16:21

    鸿蒙5开发宝藏案例分享---应用架构实战技巧

    程(也叫UI线程),但耗时操作(网络请求/数据库读写)需放在子线程。官方推荐用 **<span class=\"ne-text\">
    发表于 06-12 16:14

    在KaihongOS应用开发中,如何通过HTTP发起一个数据请求

    Http 在KaihongOS应用开发中,可以通过HTTP发起一个数据请求,支持常见的GET、POST、OPTIONS、HEAD、PUT、
    发表于 05-08 06:44

    HTTP网络通讯过程

    的 OSI 模型。 OSI  是一种理论下的模型,而  TCP/IP  已被广泛使用,成为网络互联事实上的标准。 2. HTTP 网络通讯过程 示例:简单的网络拓扑模型 详解:当键入网
    的头像 发表于 01-20 09:07 1057次阅读
    <b class='flag-5'>HTTP</b><b class='flag-5'>网络</b>通讯过程

    服务器如何处理 HTTP 请求

    服务器处理HTTP请求的过程是一个有序且复杂的流程,通常涉及多个步骤。以下是服务器处理HTTP请求的具体步骤: 监听端口 :HTTP服务器在
    的头像 发表于 12-30 09:37 1007次阅读

    如何调试 HTTP 请求和响应

    调试HTTP请求和响应是Web开发网络编程中的一个重要技能。以下是一些步骤和工具,可以帮助你调试HTTP
    的头像 发表于 12-30 09:28 1801次阅读

    如何使用 HTTP 协议进行数据传输

    在互联网时代,数据传输是信息交换的基础。HTTP协议作为最常用的数据传输协议之一,支撑着全球数十亿用户的数据交互。 HTTP协议的基本概念
    的头像 发表于 12-30 09:24 2146次阅读

    鸿蒙Flutter实战:14-现有Flutter 项目支持鸿蒙 II

    分别安装官方的3.22版本,以及鸿蒙社区的 3.22.0 版本 3.搭建 Flutter鸿蒙开发环境 参考文章《鸿蒙Flutter实战:0
    发表于 12-26 14:59