微信小程序API 發(fā)起請求

2022-05-11 16:16 更新

RequestTask wx.request(Object object)

發(fā)起 HTTPS 網(wǎng)絡(luò)請求。使用前請注意閱讀相關(guān)說明。

參數(shù)

Object object

屬性 類型 默認值 必填 說明 最低版本
url string 開發(fā)者服務(wù)器接口地址
data string/object/ArrayBuffer 請求的參數(shù)
header Object 設(shè)置請求的 header,header 中不能設(shè)置 Referer。
content-type 默認為 application/json
timeout number 超時時間,單位為毫秒 2.10.0
method string GET HTTP 請求方法
dataType string json 返回的數(shù)據(jù)格式
responseType string text 響應(yīng)的數(shù)據(jù)類型 1.7.0
enableHttp2 boolean false 開啟 http2 2.10.4
enableQuic boolean false 開啟 quic 2.10.4
enableCache boolean false 開啟 cache 2.10.4
success function 接口調(diào)用成功的回調(diào)函數(shù)
fail function 接口調(diào)用失敗的回調(diào)函數(shù)
complete function 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)

object.method 的合法值

說明 最低版本
OPTIONS HTTP 請求 OPTIONS
GET HTTP 請求 GET
HEAD HTTP 請求 HEAD
POST HTTP 請求 POST
PUT HTTP 請求 PUT
DELETE HTTP 請求 DELETE
TRACE HTTP 請求 TRACE
CONNECT HTTP 請求 CONNECT

object.dataType 的合法值

說明 最低版本
json 返回的數(shù)據(jù)為 JSON,返回后會對返回的數(shù)據(jù)進行一次 JSON.parse
其他 不對返回的內(nèi)容進行 JSON.parse

object.responseType 的合法值

說明 最低版本
text 響應(yīng)的數(shù)據(jù)為文本
arraybuffer 響應(yīng)的數(shù)據(jù)為 ArrayBuffer

object.success 回調(diào)函數(shù)

參數(shù)
Object res
屬性 類型 說明 最低版本
data string/Object/Arraybuffer 開發(fā)者服務(wù)器返回的數(shù)據(jù)
statusCode number 開發(fā)者服務(wù)器返回的 HTTP 狀態(tài)碼
header Object 開發(fā)者服務(wù)器返回的 HTTP Response Header 1.2.0
cookies Array.<string> 開發(fā)者服務(wù)器返回的 cookies,格式為字符串?dāng)?shù)組 2.10.0
profile Object 網(wǎng)絡(luò)請求過程中一些調(diào)試信息 2.10.4

res.profile 的結(jié)構(gòu)

屬性 類型 說明
redirectStart number 第一個 HTTP 重定向發(fā)生時的時間。有跳轉(zhuǎn)且是同域名內(nèi)的重定向才算,否則值為 0
redirectEnd number 最后一個 HTTP 重定向完成時的時間。有跳轉(zhuǎn)且是同域名內(nèi)部的重定向才算,否則值為 0
fetchStart number 組件準備好使用 HTTP 請求抓取資源的時間,這發(fā)生在檢查本地緩存之前
domainLookupStart number DNS 域名查詢開始的時間,如果使用了本地緩存(即無 DNS 查詢)或持久連接,則與 fetchStart 值相等
domainLookupEnd number DNS 域名查詢完成的時間,如果使用了本地緩存(即無 DNS 查詢)或持久連接,則與 fetchStart 值相等
connectStart number HTTP(TCP) 開始建立連接的時間,如果是持久連接,則與 fetchStart 值相等。注意如果在傳輸層發(fā)生了錯誤且重新建立連接,則這里顯示的是新建立的連接開始的時間
connectEnd number HTTP(TCP) 完成建立連接的時間(完成握手),如果是持久連接,則與 fetchStart 值相等。注意如果在傳輸層發(fā)生了錯誤且重新建立連接,則這里顯示的是新建立的連接完成的時間。注意這里握手結(jié)束,包括安全連接建立完成、SOCKS 授權(quán)通過
SSLconnectionStart number SSL建立連接的時間,如果不是安全連接,則值為 0
SSLconnectionEnd number SSL建立完成的時間,如果不是安全連接,則值為 0
requestStart number HTTP請求讀取真實文檔開始的時間(完成建立連接),包括從本地讀取緩存。連接錯誤重連時,這里顯示的也是新建立連接的時間
requestEnd number HTTP請求讀取真實文檔結(jié)束的時間
responseStart number HTTP 開始接收響應(yīng)的時間(獲取到第一個字節(jié)),包括從本地讀取緩存
responseEnd number HTTP 響應(yīng)全部接收完成的時間(獲取到最后一個字節(jié)),包括從本地讀取緩存
rtt number 當(dāng)次請求連接過程中實時 rtt
estimate_nettype string 評估的網(wǎng)絡(luò)狀態(tài) slow 2g/2g/3g/4g
httpRttEstimate number 協(xié)議層根據(jù)多個請求評估當(dāng)前網(wǎng)絡(luò)的 rtt(僅供參考)
transportRttEstimate number 傳輸層根據(jù)多個請求評估的當(dāng)前網(wǎng)絡(luò)的 rtt(僅供參考)
downstreamThroughputKbpsEstimate number 評估當(dāng)前網(wǎng)絡(luò)下載的kbps
throughputKbps number 當(dāng)前網(wǎng)絡(luò)的實際下載kbps
peerIP string 當(dāng)前請求的IP
port number 當(dāng)前請求的端口
socketReused boolean 是否復(fù)用連接
sendBytesCount number 發(fā)送的字節(jié)數(shù)
receivedBytedCount number 收到字節(jié)數(shù)

返回值

RequestTask

基礎(chǔ)庫 1.4.0 開始支持,低版本需做兼容處理。

請求任務(wù)對象

data 參數(shù)說明

最終發(fā)送給服務(wù)器的數(shù)據(jù)是 String 類型,如果傳入的 data 不是 String 類型,會被轉(zhuǎn)換成 String 。轉(zhuǎn)換規(guī)則如下:

  • 對于 GET 方法的數(shù)據(jù),會將數(shù)據(jù)轉(zhuǎn)換成 query string(encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...)
  • 對于 POST 方法且 header['content-type'] 為 application/json 的數(shù)據(jù),會對數(shù)據(jù)進行 JSON 序列化
  • 對于 POST 方法且 header['content-type'] 為 application/x-www-form-urlencoded 的數(shù)據(jù),會將數(shù)據(jù)轉(zhuǎn)換成 query string (encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...)

示例代碼

wx.request({
  url: 'test.php', //僅為示例,并非真實的接口地址
  data: {
    x: '',
    y: ''
  },
  header: {
    'content-type': 'application/json' // 默認值
  },
  success (res) {
    console.log(res.data)
  }
})

RequestTask

基礎(chǔ)庫 1.4.0 開始支持,低版本需做兼容處理。

網(wǎng)絡(luò)請求任務(wù)對象

方法

RequestTask.abort()

基礎(chǔ)庫 1.4.0 開始支持,低版本需做兼容處理。

中斷請求任務(wù)


RequestTask.offHeadersReceived(function callback)

基礎(chǔ)庫 2.1.0 開始支持,低版本需做兼容處理。

取消監(jiān)聽 HTTP Response Header 事件

參數(shù)

function callback

HTTP Response Header 事件的回調(diào)函數(shù)


RequestTask.onHeadersReceived(function callback)

基礎(chǔ)庫 2.1.0 開始支持,低版本需做兼容處理。

監(jiān)聽 HTTP Response Header 事件。會比請求完成事件更早

參數(shù)

function callback

HTTP Response Header 事件的回調(diào)函數(shù)

參數(shù)

Object res
屬性 類型 說明
header Object 開發(fā)者服務(wù)器返回的 HTTP Response Header


示例代碼

const requestTask = wx.request({
  url: 'test.php', //僅為示例,并非真實的接口地址
  data: {
    x: '' ,
    y: ''
  },
  header: {
    'content-type': 'application/json'
  },
  success (res) {
    console.log(res.data)
  }
})
requestTask.abort() // 取消請求任務(wù)


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號