0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙OS開發(fā)實(shí)戰(zhàn):【網(wǎng)絡(luò)管理HTTP數(shù)據(jù)請(qǐng)求】

jf_46214456 ? 2024-04-01 16:31 ? 次閱讀

一、場(chǎng)景介紹

應(yīng)用通過HTTP發(fā)起一個(gè)數(shù)據(jù)請(qǐng)求,支持常見的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。

二、 接口說明

HTTP數(shù)據(jù)請(qǐng)求功能主要由http模塊提供。

使用該功能需要申請(qǐng)ohos.permission.INTERNET權(quán)限。

涉及的接口如下表,具體的接口說明請(qǐng)參考API文檔。

接口名功能描述
createHttp()創(chuàng)建一個(gè)http請(qǐng)求。
request()根據(jù)URL地址,發(fā)起HTTP網(wǎng)絡(luò)請(qǐng)求。
destroy()中斷請(qǐng)求任務(wù)。
on(type: 'headersReceive')訂閱HTTP Response Header 事件。
off(type: 'headersReceive')取消訂閱HTTP Response Header 事件。
once('headersReceive')8+訂閱HTTP Response Header 事件,但是只觸發(fā)一次。

熟悉[鴻蒙]文檔

鴻蒙OS開發(fā)更多內(nèi)容↓點(diǎn)擊HarmonyOSOpenHarmony技術(shù)
鴻蒙技術(shù)文檔《鴻蒙NEXT星河版開發(fā)學(xué)習(xí)文檔》

搜狗高速瀏覽器截圖20240326151450.png

三、request接口開發(fā)步驟

1.從@ohos.net.http.d.ts中導(dǎo)入http命名空間。

2.調(diào)用createHttp()方法,創(chuàng)建一個(gè)HttpRequest對(duì)象。

3.調(diào)用該對(duì)象的on()方法,訂閱http響應(yīng)頭事件,此接口會(huì)比request請(qǐng)求先返回??梢愿鶕?jù)業(yè)務(wù)需要訂閱此消息。

4.調(diào)用該對(duì)象的request()方法,傳入http請(qǐng)求的url地址和可選參數(shù),發(fā)起網(wǎng)絡(luò)請(qǐng)求。

5.按照實(shí)際業(yè)務(wù)需要,解析返回結(jié)果。

6.調(diào)用該對(duì)象的off()方法,取消訂閱http響應(yīng)頭事件。

7.當(dāng)該請(qǐng)求使用完畢時(shí),調(diào)用destroy()方法主動(dòng)銷毀。

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

// 每一個(gè)httpRequest對(duì)應(yīng)一個(gè)HTTP請(qǐng)求任務(wù),不可復(fù)用
let httpRequest = http.createHttp();
// 用于訂閱HTTP響應(yīng)頭,此接口會(huì)比request請(qǐng)求先返回。可以根據(jù)業(yè)務(wù)需要訂閱此消息
// 從API 8開始,使用on('headersReceive', Callback)替代on('headerReceive', AsyncCallback)。 8+
httpRequest.on('headersReceive', (header) = > {
    console.info('header: ' + JSON.stringify(header));
});
httpRequest.request(
    // 填寫HTTP請(qǐng)求的URL地址,可以帶參數(shù)也可以不帶參數(shù)。URL地址需要開發(fā)者自定義。請(qǐng)求的參數(shù)可以在extraData中指定
    "EXAMPLE_URL",
    {
        method: http.RequestMethod.POST, // 可選,默認(rèn)為http.RequestMethod.GET
        // 開發(fā)者根據(jù)自身業(yè)務(wù)需要添加header字段
        header: {
            'Content-Type': 'application/json'
        },
        // 當(dāng)使用POST請(qǐng)求時(shí)此字段用于傳遞內(nèi)容
        extraData: {
            "data": "data to send",
        },
        expectDataType: http.HttpDataType.STRING, // 可選,指定返回?cái)?shù)據(jù)的類型
        usingCache: true, // 可選,默認(rèn)為true
        priority: 1, // 可選,默認(rèn)為1
        connectTimeout: 60000, // 可選,默認(rèn)為60000ms
        readTimeout: 60000, // 可選,默認(rèn)為60000ms
        usingProtocol: http.HttpProtocol.HTTP1_1, // 可選,協(xié)議類型默認(rèn)值由系統(tǒng)自動(dòng)指定
    }, (err, data) = > {
        if (!err) {
            // data.result為HTTP響應(yīng)內(nèi)容,可根據(jù)業(yè)務(wù)需要進(jìn)行解析
            console.info('Result:' + JSON.stringify(data.result));
            console.info('code:' + JSON.stringify(data.responseCode));
            // data.header為HTTP響應(yīng)頭,可根據(jù)業(yè)務(wù)需要進(jìn)行解析
            console.info('header:' + JSON.stringify(data.header));
            console.info('cookies:' + JSON.stringify(data.cookies)); // 8+
        } else {
            console.info('error:' + JSON.stringify(err));
            // 取消訂閱HTTP響應(yīng)頭事件
            httpRequest.off('headersReceive');
            // 當(dāng)該請(qǐng)求使用完畢時(shí),調(diào)用destroy方法主動(dòng)銷毀
            httpRequest.destroy();
        }
    }
);
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    510

    瀏覽量

    31307
  • 鴻蒙系統(tǒng)
    +關(guān)注

    關(guān)注

    183

    文章

    2636

    瀏覽量

    66432
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1979

    瀏覽量

    30278
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3727

    瀏覽量

    16389
  • 鴻蒙OS
    +關(guān)注

    關(guān)注

    0

    文章

    189

    瀏覽量

    4456
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何調(diào)試 HTTP 請(qǐng)求和響應(yīng)

    調(diào)試HTTP請(qǐng)求和響應(yīng)是Web開發(fā)網(wǎng)絡(luò)編程中的一個(gè)重要技能。以下是一些步驟和工具,可以幫助你調(diào)試HTTP
    的頭像 發(fā)表于 12-30 09:28 ?232次閱讀

    鴻蒙Flutter實(shí)戰(zhàn):07混合開發(fā)

    # 鴻蒙Flutter實(shí)戰(zhàn):混合開發(fā) 鴻蒙Flutter混合開發(fā)主要有兩種形式。 ## 1.基于har 將flutter module
    發(fā)表于 10-23 16:00

    鴻蒙開發(fā)網(wǎng)絡(luò)管理: @ohos.net.http 數(shù)據(jù)請(qǐng)求

    每一個(gè)httpRequest對(duì)應(yīng)一個(gè)http請(qǐng)求任務(wù),不可復(fù)用
    的頭像 發(fā)表于 06-18 15:42 ?855次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)網(wǎng)絡(luò)</b><b class='flag-5'>管理</b>: @ohos.net.<b class='flag-5'>http</b>  <b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>請(qǐng)求</b>

    鴻蒙OS崛起,鴻蒙應(yīng)用開發(fā)工程師成市場(chǎng)新寵

    應(yīng)用的形態(tài)也在發(fā)生著翻天覆地的變化。作為全球領(lǐng)先的移動(dòng)操作系統(tǒng)和智能終端制造商,華為公司自主研發(fā)的鴻蒙OS應(yīng)運(yùn)而生,致力于構(gòu)建一個(gè)統(tǒng)一的分布式操作系統(tǒng),為各行各業(yè)的應(yīng)用開發(fā)帶來全新的可能性。 一、
    發(fā)表于 04-29 17:32

    鴻蒙OS開發(fā)實(shí)例:【HarmonyHttpClient】網(wǎng)絡(luò)框架

    鴻蒙上使用的Http網(wǎng)絡(luò)框架,里面包含純Java實(shí)現(xiàn)的HttpNet,類似okhttp使用,支持同步和異步兩種請(qǐng)求方式;還有鴻蒙版retro
    的頭像 發(fā)表于 04-12 16:58 ?853次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>實(shí)例:【HarmonyHttpClient】<b class='flag-5'>網(wǎng)絡(luò)</b>框架

    鴻蒙原生應(yīng)用開發(fā)-網(wǎng)絡(luò)管理模塊總述

    一、網(wǎng)絡(luò)管理模塊主要提供以下功能: HTTP數(shù)據(jù)請(qǐng)求:通過HTTP發(fā)起一個(gè)
    發(fā)表于 04-08 09:45

    鴻蒙OS開發(fā)實(shí)例:【窺探網(wǎng)絡(luò)請(qǐng)求

    HarmonyOS 平臺(tái)中使用網(wǎng)絡(luò)請(qǐng)求,需要引入 "@ohos.net.http", 并且需要在 module.json5 文件中申請(qǐng)網(wǎng)絡(luò)權(quán)限, 即 “ohos.permission.
    的頭像 發(fā)表于 04-01 16:11 ?803次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>實(shí)例:【窺探<b class='flag-5'>網(wǎng)絡(luò)</b><b class='flag-5'>請(qǐng)求</b>】

    鴻蒙OS開發(fā)實(shí)戰(zhàn):【打造自己的搜索入口】

    包含,輸入框文字輸入,熱門詞展示,熱門帖子展示。全篇主要使用到的控件是TextInput, Flex, Swiper。為了貼近實(shí)戰(zhàn),文字輸入過程中,也增加了聯(lián)想詞功能。整個(gè)示例將在模擬狀態(tài)下完成,不做任何網(wǎng)絡(luò)請(qǐng)求。
    的頭像 發(fā)表于 03-29 20:17 ?2444次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實(shí)戰(zhàn)</b>:【打造自己的搜索入口】

    鴻蒙原生應(yīng)用開發(fā)-網(wǎng)絡(luò)管理HTTP數(shù)據(jù)請(qǐng)求

    一、場(chǎng)景介紹 應(yīng)用通過HTTP發(fā)起一個(gè)數(shù)據(jù)請(qǐng)求,支持常見的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。 二、接口說明 HTTP
    發(fā)表于 03-29 17:51

    鴻蒙OS開發(fā)實(shí)例:【工具類封裝-http請(qǐng)求

    ;@ohos.promptAction';** **封裝HTTP接口請(qǐng)求類,提供格式化的響應(yīng)信息輸出功能。 使用 DevEco Studio 3.1.1 Release 及以上版本,API 版本為 api 9 及以上
    的頭像 發(fā)表于 03-27 22:32 ?1383次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>實(shí)例:【工具類封裝-<b class='flag-5'>http</b><b class='flag-5'>請(qǐng)求</b>】

    鴻蒙開發(fā)實(shí)戰(zhàn)網(wǎng)絡(luò)請(qǐng)求庫(kù)【axios】

    [Axios]?,是一個(gè)基于 promise 的網(wǎng)絡(luò)請(qǐng)求庫(kù),可以運(yùn)行 node.js 和瀏覽器中。本庫(kù)基于[Axios]原庫(kù)v1.3.4版本進(jìn)行適配,使其可以運(yùn)行在 OpenHarmony,并沿用其現(xiàn)有用法和特性。
    的頭像 發(fā)表于 03-25 16:47 ?3932次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實(shí)戰(zhàn)</b>:<b class='flag-5'>網(wǎng)絡(luò)</b><b class='flag-5'>請(qǐng)求</b>庫(kù)【axios】

    鴻蒙開發(fā)實(shí)戰(zhàn):【ylong_http】解析

    ylong_http 構(gòu)建了完整的 HTTP 能力,支持用戶使用 HTTP 能力完成通信場(chǎng)景的需求。
    的頭像 發(fā)表于 03-12 16:57 ?624次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實(shí)戰(zhàn)</b>:【ylong_<b class='flag-5'>http</b>】解析

    鴻蒙實(shí)戰(zhàn)項(xiàng)目開發(fā):【短信服務(wù)】

    數(shù)據(jù)管理 電話服務(wù) 分布式應(yīng)用開發(fā) 通知與窗口管理 多媒體技術(shù) 安全技能 任務(wù)管理 WebGL 國(guó)際化開發(fā) 應(yīng)用測(cè)試 DFX面向未來設(shè)計(jì)
    發(fā)表于 03-03 21:29

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

    鴻蒙的出現(xiàn),標(biāo)志著中國(guó)科技的崛起。HarmonyOS就是我們說的華為鴻蒙系統(tǒng),截止到2023年8月4日已有超過7億臺(tái)設(shè)備搭載了鴻蒙OS系統(tǒng)。據(jù)多家媒體報(bào)道,2024年國(guó)內(nèi)有21所985
    發(fā)表于 02-28 10:29

    1月18號(hào)“純鴻蒙”千帆啟航,程序員預(yù)備!

    …… 《鴻蒙開發(fā)進(jìn)階》http://qr61.cn/oWQPaX/qU3VHZO 1.Stage模型入門 2.網(wǎng)絡(luò)管理 3.
    發(fā)表于 01-16 22:13