請求庫-axios

Axios 是一個基于 Promise 的 HTTP 客戶端庫,用于瀏覽器和 Node.js 環境。它支持發送異步 HTTP 請求,并提供了簡潔的 API 來處理請求和響應。

1、安裝axios

因為axios是一個第三方庫,所以在使用之前我們需要先安裝第三方模塊。

安裝 Axios 需通過 ohpm 包管理器完成。在 DevEco Studio 終端執行命令后,庫文件會自動下載并集成到項目中。卸載時同樣通過 ohpm 清理依賴,確保項目無冗余文件。

安裝命令作用于鴻蒙(OpenHarmony)生態,需注意環境兼容性。安裝完成后,無需額外配置即可直接引入模塊。

安裝的命令為:

# 安裝
ohpm i @ohos/axios# 卸載
ohpm uninstall @ohos/axios

首先,我們打開DevEco Studio,點擊下方的終端,在終端中輸入安裝命令,等待安裝完成后即可。

2、axios的基本用法

Axios 的完整請求語法支持泛型參數,分別定義響應數據類型、完整響應結構及請求參數類型。配置對象包含以下關鍵字段:

  • method:HTTP 方法(如 GET/POST),不區分大小寫,默認 GET
  • url:目標服務器地址,支持絕對路徑或相對路徑
  • headers:自定義請求頭,例如設置?Content-Type?為 JSON 格式
  • params:URL 查詢參數,自動拼接到請求地址后
  • data:請求體數據,用于 POST/PUT 等需要傳輸數據的場景

語法:

// 完整寫法
axios<string, AxiosResponse<string>, null>({method: "請求方式",  // 支持post/get/put/delete方法,不區分大小寫,默認為get方法url: '是用于請求的服務器 URL',  // 請求的地址headers: {'Content-Type': 'application/json'}, // 是即將被發送的自定義請求頭params: {參數名: 參數值   // 與請求一起發送的 URL 參數},data: {參數名: 參數值  // 作為請求主體被發送的數據},context: context // 基于應用程序的上下文,只適用于上傳/下載請求
}).then((res: AxiosResponse) => {// res 接收成功的結果 
}).catch((error: AxiosError) => {// error 接收失敗的結果
})

axios后<>內分別是返回,響應的核心數據類型,響應的數據類型,請求參數類型。

3、axios的請求別名

Axios 提供了簡潔的請求別名方法,涵蓋了常見的 HTTP 請求方式。這些別名方法可直接調用,無需顯式指定 method 參數。

3.1get請求

作用:客戶端通過請求從服務器獲取HTML、CSS、JavaScript、圖片或視頻等靜態資源。例如,瀏覽器發送HTTP請求加載網頁內容。

語法:

// 導入
import axios, { AxiosResponse } from '@ohos/axios'
// 發送get請求
axios.get<ResponseType, AxiosResponse<ResponseType>, RequestBodyType>('https://www.xxx.com/info', { params: { key: "value" } // query 參數})
.then((response: AxiosResponse) => {console.info("result:" + JSON.stringify(response.data));
})
.catch((error: AxiosError) => {console.error("result:" + error.message);
});
3.2post請求

作用:表單提交、文件上傳或API調用通過請求將數據發送到服務器。例如,用戶登錄時提交賬號密碼至服務端驗證。

語法:

import axios from 'axios';axios.post<ResponseType, AxiosResponse<ResponseType>, RequestBodyType>('https://www.xxx.com/info',{ key: "value" }, // Body 參數{headers: { 'Content-Type': 'application/json' }, // 請求頭params: {}, // 可選的 URL 查詢參數}
)
.then((response: AxiosResponse<string>) => {console.info("POST result:" + JSON.stringify(response.data));
})
.catch((error: AxiosError) => {console.error("POST error:" + error.message);
});
3.3put請求

作用:請求可觸發服務器端的特定處理邏輯,如數據庫更新、支付流程或數據分析。RESTful API中的POSTDELETE請求常用于此類場景。

語法:

import axios from 'axios';axios.put<ResponseType, AxiosResponse<ResponseType>, RequestBodyType>('https://www.xxx.com/info/path參數',{ key: "value" }, // PUT 請求體參數(Body參數){headers: { 'Content-Type': 'application/json' }, // 請求頭 -> json以為的其他數據格式params: {key: "value"}, // 可選的 URL 查詢參數(query參數)}
)
.then((response: AxiosResponse<string>) => {console.info("PUT result:" + JSON.stringify(response.data));
})
.catch((error: AxiosError) => {console.error("PUT error:" + error.message);
});
3.4delete請求

作用:刪除數據。

語法:

import axios from 'axios';axios.delete<ResponseType, AxiosResponse<ResponseType>, RequestBodyType>('https://www.xxx.com/info/path參數',{headers: { 'Content-Type': 'application/json' }, // 請求頭params: { key: "value" }, // DELETE 請求通常用 query 參數// 如果需要 body,可以這樣傳:// data: { key: "value" }, // 某些 API 可能需要 body 參數}
)
.then((response: AxiosResponse<string>) => {console.info("DELETE result:" + JSON.stringify(response.data));
})
.catch((error: AxiosError) => {console.error("DELETE error:" + error.message);
});

4、axios基地址

axios基地址是axios實例的基礎URL路徑,它會被自動添加到所有相對路徑請求的前面。通過設置基地址可以簡化代碼,避免重復書寫相同的服務器地址前綴。

語法:

const req =  axios.create({// 基地址,后續請求的時候這部分可以省略baseURL:'https://api-vue-base.xxxxxx.net/'
})
// get 請求 直接寫 url 即可
const res = await req<string, JokeListResponse, null>({url: '/xxx/xxx',params: {num: 10}
})
AlertDialog.show({ message: JSON.stringify(res.data.data) })

綜上所述,Axios 作為一個基于 Promise 的強大 HTTP 客戶端庫,憑借其簡潔的 API 設計和跨平臺兼容性(支持瀏覽器與 Node.js 環境),為開發者提供了高效處理異步請求的解決方案。從安裝到實際應用,它通過 ohpm 包管理器實現無縫集成,配置簡單直觀;請求別名如 GET、POST、PUT 和 DELETE 簡化了常見操作;基地址設置則優化了代碼復用性,避免冗余。這些特性不僅提升了開發效率,還確保了請求處理的可靠性與可維護性。建議開發者在項目中積極實踐這些方法,結合錯誤處理機制,以構建更健壯的應用程序。如需進一步探索,可參考官方文檔深化學習。

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

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

相關文章

電子煙的4種屏幕驅動集成語音方案介紹

目前電子煙在全球市場的表現非常不錯&#xff0c;很多國產電子煙廠家都有非常不錯的產品&#xff0c;而屏幕驅動方案是電子煙智能化的重要組成部分&#xff0c;今天就給大家帶來電子煙的4種主流屏幕驅動方案(含2025年最新版方案)。?  方案一、LED顯示方案語音播報集成方案 W…

無法加載 DLL“xxxxxxx.dll”: 找不到指定的模塊。 (異常來自 HRESULT:0x8007007E)。

(無法加載 DLL“xxxxxxx.dll”: 找不到指定的模塊。 (異常來自 HRESULT:0x8007007E)。) 這個錯誤&#xff1a; 無法加載 DLL“ZH_P2P_Libx64.dll”: 找不到指定的模塊。 (異常來自 HRESULT:0x8007007E) 意味著你的程序在運行時試圖加載一個名為 xxxxxxx.dll 的動態鏈接庫&#…

Flask/Django 生產部署:Gunicorn vs Nginx,Windows 與 Linux 實戰指引

Flask/Django 生產部署&#xff1a;Gunicorn vs Nginx&#xff0c;Windows 與 Linux 實戰指引 TL;DR Gunicorn&#xff1a;Python WSGI 應用服務器&#xff0c;運行 Flask/Django&#xff08;Linux 用&#xff09;。Nginx&#xff1a;反向代理/網關&#xff08;TLS、靜態、限流…

Nginx 優化與防盜鏈全解析:從性能調優到資源保護

Nginx 優化與防盜鏈全解析&#xff1a;從性能調優到資源保護 文章目錄Nginx 優化與防盜鏈全解析&#xff1a;從性能調優到資源保護一、基礎安全優化&#xff1a;隱藏版本號1.1 查看當前版本號1.2 兩種隱藏/修改方案方案一&#xff1a;修改配置文件&#xff08;快速隱藏&#xf…

HOT100--Day20--39. 組合總和,22. 括號生成,79. 單詞搜索

HOT100–Day20–39. 組合總和&#xff0c;22. 括號生成&#xff0c;79. 單詞搜索 每日刷題系列。今天的題目是《力扣HOT100》題單。 題目類型&#xff1a;回溯。 關鍵&#xff1a;掌握排列&#xff0c;組合。記得回溯。可以重復選的話&#xff0c;下一層index從哪里開始&#x…

高并發場景下的“命令執行”注入繞道記

環境&#xff1a;CentOS 8 OpenResty 1.21 PHP-FPM 8.0 背景&#xff1a;營銷團隊上線了一個“圖片裁剪”接口&#xff0c;參數直接拼進 shell_exec&#xff0c;結果被打成“礦機”。1. 發現&#xff1a;流量突增 30 倍&#xff0c;卻不見數據庫慢查詢 iftop -i eth0出站 1.8…

【modbus學習】

Modbus通信&#xff08;源于施耐德&#xff09;串行鏈路&#xff1a;RTU&#xff08;傳輸大量數據&#xff0c;適合工業&#xff09;、ASCII&#xff08;少量數據&#xff0c;適合計算機&#xff09;TCP/IP&#xff1a;TCP&#xff08;傳輸嚴謹&#xff0c;效率低&#xff09;、…

Redis單線程模型為什么快?

Redis的單線程模型指的是redis只使用一個線程來出來所有的命令式指令&#xff0c;但是不是意味著redis內部就只使用一個線程來處理所有的任務。都知道redis是一個客戶端-服務器的程序&#xff0c;那么redis就只有一個服務器&#xff0c;但是有多個客戶端&#xff0c;就像mysql一…

前端安全攻防:XSS, CSRF 等常見威脅的防范與檢測指南

在如今高度互聯的 Web 應用世界里&#xff0c;前端安全不再是可有可無的選項&#xff0c;而是構建可信賴、健壯應用的基石。隨著 Web 技術的發展&#xff0c;攻擊者們也變得越來越狡猾&#xff0c;前端遭受的攻擊手段層出不窮。其中&#xff0c;跨站腳本攻擊 (XSS) 和跨站請求偽…

Scikit-learn Python機器學習 - 特征降維 壓縮數據 - 特征選擇 - 移除低方差特征(VarianceThreshold)

鋒哥原創的Scikit-learn Python機器學習視頻教程&#xff1a; 2026版 Scikit-learn Python機器學習 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili 課程介紹 本課程主要講解基于Scikit-learn的Python機器學習知識&#xff0c;包括機器學習概述&#xff0c;特征工程(數據…

C#(鏈表創建與原地反轉)

鏈表創建&#xff08;C#&#xff09; 在C#中&#xff0c;鏈表可以通過自定義節點類實現。每個節點包含數據域和指向下一個節點的引用。 public class ListNode {public int val;public ListNode next;public ListNode(int val0, ListNode nextnull) {this.val val;this.next…

Android --- AOSP源碼導入Android Studio

AOSP代碼量龐大&#xff0c;為了開發的方便&#xff0c;我們需要導入到android studio中&#xff0c;其中關鍵的一 項就是配置跳轉。尤其是對于Framework開發來說生成 ipr,iml 工程文件make idegen ./development/tools/idegen/idegen.sh會生成如下文件首先需要修改ipr和iml文件…

游戲中的設計模式——第一篇 設計模式簡介

前言 對于設計模式&#xff0c;相信很多開發者并不陌生&#xff0c;我在學習過程中希望把自己的一些總結和心得體會與你分享。 本專欄主要將重點放在設計模式在游戲中的應用&#xff0c;會結合大家熟悉的游戲場景和功能闡述設計模式在該處應用的好處。因為設計模式很多&#xf…

SpringBoot + RustFS 實現文件切片極速上傳技術

本文將手把手教你如何通過 SpringBoot 和 RustFS 構建高性能文件切片上傳系統&#xff0c;解決大文件傳輸的痛點&#xff0c;實現秒傳、斷點續傳和分片上傳等高級功能。 目錄 一、為什么選擇 RustFS SpringBoot&#xff1f; 二、環境準備與部署 2.1 安裝 RustFS 2.2 Sprin…

在Word和WPS文字中便捷切換英文段落大小寫

在Word和WPS文字中編輯英文段落時&#xff0c;有時候英文字母的大小寫不規范&#xff0c;或者需要把某一段全部改為大寫字母怎么辦&#xff1f;使用ShiftF3組合鍵即可快速在三種模式中切換&#xff1a;全部大寫、全部小寫、首字母大寫——其中首字母大寫的Word是每一句話的第一…

成都金牛區哪里租好辦公室?國際數字影像產業園享稅收優惠

在成都金牛區租賃優質辦公室&#xff0c;國際數字影像產業園憑借其享有的稅收優惠政策&#xff0c;成為了許多企業的首選之地。稅收優惠對于租賃辦公室的企業來說&#xff0c;是一筆不小的成本節省。國際數字影像產業園針對入駐企業提供的稅收優惠政策&#xff0c;能在企業運營…

CSS `:is()` `:where()` 實戰指南:簡化選擇器,提升可維護性

&#x1f3af; CSS :is() & :where() 實戰指南&#xff1a;簡化選擇器&#xff0c;提升可維護性你是否在項目中寫過一大串重復的選擇器&#xff1f;比如&#xff1a; h1, h2, h3, h4, h5, h6 { margin-bottom: 1rem; }這樣的代碼既冗長又難維護。 現在 CSS 提供了 :is() 和…

Linux I/O 訪問架構深入分析

Linux I/O 訪問架構深入分析 目錄 概述I/O 架構層次核心數據結構I/O 處理流程VFS 虛擬文件系統塊設備I/O字符設備I/O內存映射I/O異步I/O機制I/O調度器調試工具與方法性能優化策略 概述 Linux I/O 系統是一個多層次、高度抽象的架構&#xff0c;旨在為應用程序提供統一的文件訪問…

Linux:6_基礎IO

基礎IO 一.理解"文件" 文件分類 1.內存級(被打開)文件 2.磁盤級文件 1. 狹義理解 文件在磁盤里磁盤是永久性存儲介質&#xff0c;因此文件在磁盤上的存儲是永久性的磁盤是外設 (即是輸出設備也是輸入設備)磁盤上的文件本質是對文件的所有操作&#xff0c;都是對外…

Coze源碼分析-資源庫-刪除插件-前端源碼-核心邏輯

刪除插件邏輯 1. 刪除操作入口組件 刪除插件操作主要通過 usePluginConfig hook 中的 renderActions 方法實現&#xff0c;該方法返回 TableAction 組件來處理表格行的操作。 文件位置&#xff1a;frontend/packages/studio/workspace/entry-base/src/pages/library/hooks/u…