鴻蒙(HarmonyOS)應用開發——http的使用

在使用app的時候,不可能將所有信息都存儲在app中,是需要鏈接互聯網,從服務端獲取數據。

請求
響應
應用
服務端

使用HTTP訪問網絡

HTTP即超文本傳輸協議(Hyper Text Transfer Protocol,HTTP)是一個簡單的請求-響應協議。它指定了客戶端可能發送給服務器什么樣的消息以及得到什么樣的響應。
在ArkTs中我們使用http的流程大致如下:

導入http模塊
創建http請求
訂閱請求頭
發起請求
處理響應

導入http模塊

import http from '@ohos.net.http'

除了導入http模塊,還需要中module.json5中添加網絡訪問權限

{"module" : {"requestPermissions":[{"name": "ohos.permission.INTERNET"}]}
}

創建http請求

適應createHttp()創建一個httpRequest對象。

每一個httpRequest對象對應一個http請求任務,不可服用

import http from '@ohos.net.http';
let httpRequest = http.createHttp();

訂閱請求頭

用于訂閱http響應頭,此接口會比request請求先返回,可以根據業務需要訂閱此消息

import http from '@ohos.net.http';
let httpRequest = http.createHttp();
httpRequest.on('headersReceive', (header) => {console.info('header: ' + JSON.stringify(header));
});

發起請求

通過發起請求,向服務器請求數據

http支持的請求方式

方法說明
OPTIONSHTTP 請求 OPTIONS
GETHTTP 請求 GET
HEADHTTP 請求 HEAD
POSTHTTP 請求 POST
PUTHTTP 請求 PUT
DELETEHTTP 請求 DELETE
TRACEHTTP 請求 TRACE
CONNECTHTTP 請求 CONNECT
  • get 方法
let promise = httpRequest.request("EXAMPLE_URL", {method: http.RequestMethod.GET,connectTimeout: 60000,readTimeout: 60000,header: {'Content-Type': 'application/json'}
});
  • post 方法
let promise = httpRequest.request("EXAMPLE_URL", {method: http.RequestMethod.GET,connectTimeout: 60000,readTimeout: 60000,extraData:{//	數據部分},header: {'Content-Type': 'application/json'}
});

處理響應

let promise = httpRequest.request("EXAMPLE_URL", {method: http.RequestMethod.GET,connectTimeout: 60000,readTimeout: 60000,extraData:{//	數據部分},header: {'Content-Type': 'application/json'}
});
promise.then((res)=>{})

返回的參數類型是:HttpResponse

HttpResponse 參數

參數類型必填說明
resultstring \Object \ArrayBuffer8+Http請求根據響應頭中Content-type類型返回對應的響應格式內容:application/json:返回JSON格式的字符串,如需Http響應具體內容,需開發者自行解析;application/octet-stream:ArrayBuffer;其他:string
responseCodeResponseCode \number回調函數執行成功時,此字段為ResponseCode。若執行失敗,錯誤碼將會從AsyncCallback中的err字段返回。錯誤碼如下:; 200:通用錯誤; 202:參數錯誤; 300:I/O錯誤
headerObject發起http請求返回來的響應頭。當前返回的是JSON格式字符串,如需具體字段內容,需開發者自行解析。常見字段及解析方式如下:Content-Type:header[‘Content-Type’];Status-Line:header[‘Status-Line’];Date:header.Date/header[‘Date’];Server:header.Server/header[‘Server’];
cookies8+Array服務器返回的 cookies。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/206980.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/206980.shtml
英文地址,請注明出處:http://en.pswp.cn/news/206980.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

03_W5500TCP_Client

上一節我們完成了W5500網絡的初始化過程,這節我們進行TCP通信,w5500作為TCP客戶端與電腦端的TCP_Server進行通信。 目錄 1.TCP通信流程圖: tcp的三次握手: tcp四次揮手: 2.代碼分析: 3.測試&#xff1a…

Python游戲測試工具自動化遍歷游戲中所有關卡

場景 游戲里有很多關卡(可能有幾百個了),理論上每次發布到外網前都要遍歷各關卡看看會不會有異常,上次就有玩家在打某個關卡時卡住不動了,如果每個關卡要人工遍歷這樣做會非常的耗時,所以考慮用自動化的方…

C語言第十六集(后續)(結構體)

1.匿名結構體(即不寫結構體名)只能用一次, 而且匿名結構體寫法特別危險 兩個匿名結構體盡管內容完全相同,但編譯器仍然認為二位是不相同的類型 結構的特殊聲明搜 2.結構體自己給自己里面包含一個結構體變量((此結構體就是當前所處的這個結構體))指針是沒有問題的,但是 結構…

AI專題報告:2022年中國人工智能產業研究報告

今天分享的AI系列深度研究報告:《AI專題報告:2022年中國人工智能產業研究報告》。 (報告出品方:艾瑞咨詢) 報告共計:112頁 人工智能參與社會建設的千行百業 價值性、通用性、效率化為產業發展戰略方向 …

淘寶API接口系列丨商品詳情數據接口丨關鍵詞搜索商品列表接口丨商品評論,銷量接口

要對接淘寶API接口,可以按照以下步驟進行操作: 注冊成為淘寶開放平臺開發者,并創建一個應用。在應用創建頁面,需要填寫應用的名稱、描述等信息,并設置應用的API權限等級。獲取App Key和App Secret。在應用創建后&…

淘寶商品詳情:獲取海量優質商品信息

淘寶商品詳情接口,也稱為淘寶商品詳情API,是一個用于獲取淘寶商品詳情的接口。它可以幫助開發者快速獲取淘寶商品信息,從而構建自己的電商應用程序。 在開始使用淘寶商品詳情接口之前,首先需要了解以下幾個概念和步驟&#xff1a…

jira創建用例,與任務關聯

項目用的jira,但之前的用例放在禪道上,或者歸檔于svn,都不是很好用,所以研究了下jira的用法 1、下載插件: synapseRT - Test management and QA in JIRA 完成后在tab會多出一個test 2、常用的功能 1、建立用例&#…

【華為OD題庫-081】最長的元音子串長度-Java

題目 題目描述: 定義當一個字符串只有元音字母一(a,e,i,o,u,A,E,l,O,U)組成, 稱為元音字符串,現給定一個字符串,請找出其中最長的元音字符串,并返回其長度,如果找不到請返回0, 字符串中任意一個連續字符組成…

Gitlab+GitlabRunner搭建CICD自動化流水線將應用部署上Kubernetes

文章目錄 安裝Gitlab服務器準備安裝版本安裝依賴和暴露端口安裝Gitlab修改Gitlab配置文件訪問Gitlab 安裝Gitlab Runner服務器準備安裝版本安裝依賴安裝Gitlab Runner安裝打包工具安裝docker安裝java17安裝maven 注冊Gitlab Runner 搭建自動化部署準備SpringBoot項目添加一個Co…

驗證碼的多種生成策略

&#x1f60a; 作者&#xff1a; 瓶蓋子io &#x1f496; 主頁&#xff1a; 瓶蓋子io-CSDN博客 第一種 a.導入依賴 <dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.10</ver…

【數據結構】字典樹(Trie樹)算法總結

知識概覽 Trie&#xff1a;高效地存儲和查找字符串集合的數據結構數字、漢字可以用二進制位來存 例題展示 題目鏈接 Trie字符串統計&#xff1a; https://www.acwing.com/problem/content/837/ 代碼 #include <cstdio>const int N 100010;int son[N][26], cnt[N],…

zxjy003- Spring Cloud后端工程搭建

1、創建 sprigboot 工程 guli-parent groupId &#xff1a; com.atguigu artifactId &#xff1a; guli-parent 2.刪除src目錄 3.配置pom.xml 修改版本為 &#xff1a;2.2.1.RELEASE<artifactId> 節點后面添加 pom類型 全部依賴&#xff0c;復制下面的即可&#xff0c…

素材創作平臺,解決企業素材供給問題

企業對于高質量素材的需求日益增長。無論是為了提升品牌形象&#xff0c;還是為了推動產品銷售&#xff0c;都需要大量的專業設計素材。然而&#xff0c;素材的獲取、設計和定制往往是一項耗時耗力的工作。這時&#xff0c;美攝科技素材創作平臺應運而生&#xff0c;為企業提供…

LeetCode [中等]矩陣置零

73. 矩陣置零 - 力扣&#xff08;LeetCode&#xff09; 暴力解法 用兩個標記數組分別記錄每一行和每一列是否有零出現。 遍歷該數組一次&#xff0c;如果某個元素為 0&#xff0c;那么就將該元素所在的行和列所對應標記數組的位置置為 true。再次遍歷該數組&#xff0c;用標…

從0到1,手把手帶你開發截圖工具ScreenCap------001實現基本的截圖功能

ScreenCap---Version&#xff1a;001 說明 從0到1&#xff0c;手把手帶你開發windows端的截屏軟件ScreenCap 當前版本&#xff1a;ScreenCap---001 支持全屏截圖 支持鼠標拖動截圖區域 支持拖拽截圖 支持保存全屏截圖 支持另存截圖到其他位置 GitHub 倉庫master下的Scr…

人工智能技術在數據治理中的一些思考

隨著企業信息化系統的快速建設&#xff0c;以及物聯網的規模化的應用&#xff0c;企業數據規模快速增長&#xff0c;與之同時企業數據的治理模式仍然以傳統的治理方式為主&#xff0c;ChatGPT等人工智能的崛起正深刻改變著數據治理的思路&#xff0c;如何將AI技術引入企業數據治…

C++新經典模板與泛型編程:用成員函數重載實現std::is_convertible

用成員函數重載實現is_convertible C標準庫中提供的可變參類模板std::is_convertible&#xff0c;這個類模板的主要能力是判斷能否從某個類型隱式地轉換到另一個類型&#xff0c;返回的是一個布爾值true或false。例如&#xff0c;一般的從int轉換成float或從float轉換成int&am…

使用Plex結合cpolar搭建本地私人媒體站并實現遠程訪問

文章目錄 1.前言2. Plex網站搭建2.1 Plex下載和安裝2.2 Plex網頁測試2.3 cpolar的安裝和注冊 3. 本地網頁發布3.1 Cpolar云端設置3.2 Cpolar本地設置 4. 公網訪問測試5. 結語 1.前言 用手機或者平板電腦看視頻&#xff0c;已經算是生活中稀松平常的場景了&#xff0c;特別是各…

劇本殺小程序搭建:打造線上劇本殺新體驗

劇本殺是一款以角色扮演為主的游戲&#xff0c;一度成為了年輕人的最喜愛的社交游戲。在劇本殺市場需求下&#xff0c;劇本殺規模也迅速上升。今年第一季度&#xff0c;劇本殺市場規模環比增長47%&#xff0c;市場整體消費水平逐漸呈上升趨勢。 隨著劇本殺的不斷發展&#xff…

echarts繪制一個環形圖2

其他echarts&#xff1a; echarts繪制一個環形圖 echarts繪制一個柱狀圖&#xff0c;柱狀折線圖 echarts繪制一個餅圖 效果&#xff1a; 組件代碼&#xff1a; <template><div class"wrapper"><div ref"doughnutChart2" id"dough…