一、場景介紹
應用通過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開發 | 更多內容↓點擊 | HarmonyOS與OpenHarmony技術 |
|---|---|---|
| 鴻蒙技術文檔 | 《鴻蒙NEXT星河版開發學習文檔》 |

三、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文章
537瀏覽量
35350 -
鴻蒙系統
+關注
關注
183文章
2642瀏覽量
69839 -
HarmonyOS
+關注
關注
80文章
2153瀏覽量
36044 -
OpenHarmony
+關注
關注
33文章
3952瀏覽量
21096 -
鴻蒙OS
+關注
關注
0文章
193瀏覽量
5482
發布評論請先 登錄
相關推薦
熱點推薦
1688 商品詳情 API 調用與數據解析 Python 實戰
你想要的是 1688 商品詳情 API 的 Python 調用與數據解析實戰方案,核心是完成 API 憑證配置、接口請求(含簽名)、響應數據解析、異常處理 的全流程落地,我會提供可直接
M4-R1 開源鴻蒙(OpenHarmory)開發板丨串口調試助手實戰案例
支持與高集成度設計,成為開發者體驗與學習鴻蒙系統的理想平臺。無論是智慧家居、教學實驗,還是設備通信,M4-R1都能提供穩定可靠的開發環境。本次分享的實戰案例——串口
HTTP通信網關是什么?有什么功能?
HTTP通信網關是連接不同網絡或協議的關鍵設備/服務器,在HTTP通信中扮演著協議轉換、安全加固、性能優化等核心角色,其本質是 實現不同協議或網絡間的
【匯思博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+實戰案例,從分布式架構到交互動效優化應有盡有!這些案例不僅藏著華為工程師的私房技巧,還直接
鴻蒙5開發寶藏案例分享---長列表性能優化解析
鴻蒙長列表性能優化大揭秘!告別卡頓,實戰代碼解析來了!
大家好呀~今天在翻鴻蒙開發者文檔時,發現了個 性能優化寶藏案例 !官方居然悄悄放出了長列表卡頓的完整解決方案,實測效果炸裂!我連
發表于 06-12 17:40
鴻蒙5開發寶藏案例分享---Web開發優化案例分享
, 提前和服務器建立好Socket連接 (甚至完成TLS握手)。等用戶真要訪問時,直接在這個“VIP通道”上傳數據!
效果: 砍掉DNS解析和建連時間,讓網絡請求“起跑”更快。
代價: 可能提前
發表于 06-12 17:20
鴻蒙5開發寶藏案例分享---Web加載時延優化解析
鴻蒙開發寶藏:Web加載完成時延優化實戰
大家好呀!今天在翻鴻蒙開發者文檔時,發現了一個隱藏的 性能優化寶藏區 ——官方竟然悄悄提供了超多
發表于 06-12 17:11
鴻蒙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
鴻蒙OS開發實戰:【網絡管理HTTP數據請求】
評論