uni-app——網絡API

uni-app 網絡API

在 uni-app 開發中,網絡請求是獲取數據與和服務器交互的重要手段。以下介紹 uni-app 中常見的網絡 API,包括發起請求、上傳和下載以及 WebSocket、UDP 通信等方面。

發起請求

在 uni-app 里,使用uni.request(OBJECT)來發起網絡請求,它類似于傳統 Web 開發中的 AJAX,在實際開發中主要用于從服務器端接口獲取數據,其使用方式和 jQuery 的 AJAX 較為相似。下面詳細介紹其參數:

  • url(必填):這是開發者服務器接口的地址,明確請求的目標位置。

  • data:用于設置請求參數,這些參數會被發送到服務器。

  • header:用來設置請求的頭部信息,比如設置認證信息等。

  • method:指定請求的方法,默認是 GET。

  • timeout:設置請求的超時時間,避免請求長時間無響應。

  • dataType:若設置為 json,uni-app 會自動嘗試對返回的數據進行 JSON.parse 處理,方便后續使用數據。

  • sslVerify:用于驗證 SSL 證書,保障請求的安全性。

  • withCredentials:決定跨域請求時是否攜帶憑證。

  • firstlpv4:在 DNS 解析時優先使用 IPV4。

  • success:當成功收到開發者服務器返回的數據時,會觸發這個回調函數。

  • fail:一旦接口調用失敗,就會進入這個回調函數。

  • complete:無論接口調用成功與否,結束時都會執行此回調函數。

代碼示例

假設我們要從服務器獲取用戶列表數據,接口地址為https://example.com/api/users,示例代碼如下:

uni.request({url: 'https://example.com/api/users',method: 'GET',data: {page: 1,limit: 10},header: {'Content-Type': 'application/json'},success: function (res) {console.log('請求成功', res.data);},fail: function (err) {console.log('請求失敗', err);},complete: function () {console.log('請求結束');}
});

關于 data 的轉換規則

發送給服務器的 data 必須是 String 類型,如果不是 String 類型,會按照特定規則強制轉換為 String:

  • GET 方法:數據會被轉換為查詢字符串。例如{name:‘name’,age:‘18’}會轉換為name=name&age=18。

  • POST 方法

    • 當header[‘content-type’]為application/json時,數據會進行 JSON 序列化。
    • 當header[‘content-type’]為application/x-www-form-urlencoded時,數據會被轉換為查詢字符串。

method 的取值

method可取值有GET、POST、PUT、DELETE、CONNECT、HEAD、OPTIONS、TRACE。在實際開發中,常用且兼容性較好的是GET和POST方法。GET一般用于獲取數據,POST常用于向服務器提交數據。

success 回調參數說明

  • data:類型可以是Object、String或者ArrayBuffer,這是開發者服務器返回的數據內容。

  • statusCode:是一個Number類型,代表開發者服務器返回的 HTTP 狀態碼,比如常見的 200 表示成功,404 表示未找到資源等。

  • header:是一個Object,包含開發者服務器返回的 HTTP Response Header 信息。

  • cookies:是一個字符串數組Array.,里面存儲著開發者服務器返回的 cookies。

上傳文件

使用uni.uploadFile(OBJECT)可以將本地資源上傳到開發者服務器中。這個操作本質上是由客戶端發起一個 POST 請求,且其content-type為multipart/form-data。下面介紹其參數:

  • url(必填):這是開發者服務器的 URL,明確上傳的目標服務器地址。

  • files(必填):這是上傳的文件列表。當使用files時,filePath和name這兩個參數將不生效。

  • fielType:指定文件類型,可取值為image、video、audio等。

  • file:要上傳的具體文件對象。

  • filePath(必填):上傳文件在本地的資源路徑。

  • name:文件在服務器端對應的 key。

  • header:設置 HTTP 請求的 header 信息。

  • timeout:設置上傳請求的超時時間。

  • formData:用于設置 HTTP 請求中的其他表單數據。

  • successfailcomplete:這三個回調函數分別在上傳成功、失敗以及結束時觸發,方便開發者進行相應處理。

代碼示例

假設要將本地的一張圖片上傳到服務器,服務器接口地址為https://example.com/api/upload,示例代碼如下:

const filePath = '/storage/emulated/0/DCIM/Camera/IMG_20230101.jpg';
uni.uploadFile({url: 'https://example.com/api/upload',filePath: filePath,name: 'file',formData: {'user_id': '12345'},success: function (res) {console.log('上傳成功', res.data);},fail: function (err) {console.log('上傳失敗', err);},complete: function () {console.log('上傳結束');}
});

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

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

相關文章

計算機網絡筆記再戰——理解幾個經典的協議HTTP章3

理解幾個經典協議——HTTP章3 返回結果的HTTP狀態碼 ? 我們知道,ICMP可以傳遞IP通信時候的狀態如何。HTTP雖然沒有輔助的解析,但是它可以使用狀態碼來表達我們的HTTP請求的結果,標記服務器端的處理是否正常、通知出現的錯誤等工作。這就是…

國產編輯器EverEdit - Hex Dump插件:看到文本的另一面!

1 Hex Dump插件 1.1 應用場景 有時可能需要顯示字母的ASCII編碼,或其他文字的字節編碼,可以使用Hex Dump插件來完成 1.2 使用方法 安裝Hex Dump插件,安裝插件方法參考:擴展管理 在編輯器中選中文本,選擇擴展 -> …

《駕馭MXNet:深度剖析分布式深度學習訓練的高效之道》

在深度學習的迅猛發展進程中,模型的規模和復雜性持續攀升,對計算資源的需求也愈發苛刻。單機訓練在面對大規模數據集和復雜模型結構時,常常顯得力不從心。分布式深度學習訓練成為解決這一困境的關鍵途徑,而MXNet作為一款強大的開源…

Vue3項目開發:狀態管理實踐指南

# Vue3項目開發:狀態管理實踐指南 一、引言 背景介紹 在Vue項目中,狀態管理是一個非常重要的話題。合理的狀態管理能夠幫助我們更好地組織和管理數據,提升項目的可維護性和可擴展性。本文將深入探討Vue3項目中狀態管理的最佳實踐,…

網絡安全漏洞與修復 網絡安全軟件漏洞

文章目錄 一、軟件漏洞的概念 1、信息安全漏洞簡述2、軟件漏洞3、軟件漏洞概念4、軟件漏洞的成因分析 二、軟件漏洞標準化管理 1、軟件漏洞分類2、軟件漏洞分級3、安全漏洞管理規范 一、軟件漏洞的概念 1、信息安全漏洞簡述 信息安全漏洞是信息安風險的主要根源之一&…

SpringBoot項目controller層接收對應格式請求的相關RequestMapping配置

目錄 (1) (2) (3) 注:此情況注意和(4)中情況進行區分 (4) 在幾個springboot項目開發后,我總結了以下的一些常見的接收對應請求的…

2025年圖生視頻模型技術全景解析

一、開源圖生視頻模型 阿里通義萬象Wan2.1系列 I2V-14B-480P: 14B參數基礎模型支持480P分辨率圖生視頻顯存需求16GB以上 I2V-14B-720P: 高清增強版模型采用分幀渲染技術,輸出分辨率達1280720 技術特性: 支持中文提示詞自動解析內置…

一場由 ES 分片 routing 引發的問題

一場由 ES 分片 routing 引發的問題 ES 結構 {"poroperties": {"joinType": {"type": "join","eager_global_ordinals": true,"relations": {"spu": "sku"}},"id":{"type&q…

Linux信號的處理

目錄 一、信號處理概述:為什么需要“信號”? 二、用戶空間與內核空間:進程的“雙重人格” 三、內核態與用戶態:權限的“安全鎖” 四、信號捕捉的內核級實現:層層“安檢” 五、sigaction函數:精細控制信…

IntelliJ IDEA 2023.3.1安裝指南從下載到配置的完整教程(附資源下載)

安裝 IntelliJ IDEA 2023.3.1 非常簡單,以下是詳細的安裝步驟,適用于 Windows、macOS 和 Linux 系統。 1. 下載 IntelliJ IDEA IntelliJ IDEA下載鏈接:https://pan.quark.cn/s/3ad975664934 選擇適合你的操作系統的版本: Ultimat…

【HarmonyOS Next】鴻蒙中App、HAP、HAR、HSP概念詳解

【HarmonyOS Next】鴻蒙中App、HAP、HAR、HSP概念詳解 (圖1-1) 一、鴻蒙中App、HAP、HAR、HSP是什么? (1)App Pack(Application Package) 是應用發布的形態,上架應用市場是以App Pa…

配置阿里云yum源

配置阿里云yum源 修改默認的yum倉庫,把原有的移動到創建的目錄里(踢出國外的yum源) # 切換到/ect/yum.repos.d/目錄下 cd /etc/yum.repos.d/ # 新建repo目錄 mkdir repo # 把原有的移動到創建的目錄里 mv ./*.repo ./repo/配置yum源 # 找到…

在C#的MVC框架framework項目的使用ajax,及源碼下載

在C# MVC框架中使用AJAX實現異步請求,有助于提高應用程序的性能和用戶體驗。 在MVC框架framework項目中,ajax使用方法如下 1.在Controller類中,創建一個新的方法(例如:GetRes),該方法處理AJAX請求并返回J…

Linux部署DHCP服務腳本

#!/bin/bash #部署DHCP服務 #userli 20250319#檢查是否為root用戶 if[ "$USER" ! "root" ] thenecho "錯誤:非root用戶,權限不足!"exit 0 fi#配置網絡環境 read -ep "請給本機配置一個IP地址(不…

vulhub Matrix-Breakout

1.下載靶機,打開靶機和kali虛擬機 2.查詢kali和靶機ip 3.瀏覽器訪問 訪問81端口有登陸界面 4.掃描敏感目錄 kali dirb 掃描 一一訪問 robot.txt提示我們繼續找找,可能是因為我們的字典太小了,我們換個掃描器換個字典試下,利用kali自帶的最大…

科普類——雙目立體視覺與 RGBD 相機的簡單對比

雙目立體視覺與 RGBD 相機生成的深度圖在原理、性能和應用場景上有顯著差異。以下是兩者的詳細對比和分析: 1. 原理差異 (1) 雙目立體視覺 (Stereo Vision) 原理: 通過兩個攝像頭模擬人眼視差,計算匹配像素點的水平位移(視差&…

深度學習項目--基于DenseNet網絡的“乳腺癌圖像識別”,準確率90%+,pytorch復現

🍨 本文為🔗365天深度學習訓練營 中的學習記錄博客🍖 原作者:K同學啊 前言 如果說最經典的神經網絡,ResNet肯定是一個,從ResNet發布后,很多人做了修改,denseNet網絡無疑是最成功的…

面試八股 —— Redis篇

重點:緩存 和 分布式鎖 緩存(穿透,擊穿,雪崩) 降級可作為系統的保底策略,適用于穿透,擊穿,雪崩 1.緩存穿透 2.緩存擊穿 3.緩存雪崩 緩存——雙寫一致性 1.強一致性業務&#xff08…

mapbox-gl源碼中解析style加載地圖過程詳解

我將結合 Mapbox GL JS 的源碼示例,一步一步講解 style 的解析和地圖加載過程,幫助大家深入理解其內部機制。 Mapbox GL JS 是一個強大的 Web 地圖庫,利用 WebGL 技術渲染交互式地圖。其核心功能之一是通過樣式(style&#xff09…

瑞薩RA系列使用JLink RTT Viewer輸出調試信息

引言 還在用UART調試程序么?試試JLINK的RTT Viewer吧!不需占用UART端口、低資源暫用、實時性高延時微秒級,這么好的工具還有什么理由不用了! 目錄 一、JLink RTT Viewer 簡介 二、軟件安裝 三、工程應用 3.1 SEGGER_RTT驅動包 3.2 手搓宏定義APP_PRINT 3.3 使用APP_…