微信小程式開發連接配接背景伺服器
在小程式的開發中,少不了對背景伺服器的連接配接以及網絡請求,在微信小程式中,所有的網絡連接配接都是基于HTTP協定的,并且微信小程式提供了封裝好的請求接口,由于本人開發過程中使用的是wepy架構,wepy對原生的wx.request又進行了優化。
利用原生wx.request網絡連接配接
原生wx.request進行網絡連接配接,參考官方文檔API,如下
RequestTask wx.request(Object object)
發起HTTPS網絡請求,使用前請注意閱讀相關說明
參數
Object object
屬性 | 類型 | 預設值 | 必填 | 說明 | 最低版本 |
---|---|---|---|---|---|
url | string | 是 | 開發者伺服器接口位址 | ||
data | string/object/ArrayBuffer | 否 | 請求的參數 | ||
header | Object | 否 | 設定請求的 header,header 中不能設定 Referer。content-type 預設為 application/json | ||
method | string | GET | 否 | HTTP 請求方法 | |
dataType | string | json | 否 | 傳回的資料格式 | |
responseType | string | text | 否 | 響應的資料類型 | 1.7.0 |
success | function | 否 | 接口調用成功的回調函數 | ||
fail | function | 否 | 接口調用失敗的回調函數 | ||
complete | function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
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 | 傳回的資料為 JSON,傳回後會對傳回的資料進行一次 JSON.parse | |
其他 | 不對傳回的内容進行 JSON.parse |
object.responseType 的合法值
值 | 說明 | 最低版本 |
---|---|---|
text | 響應的資料為文本 | |
arraybuffer | 響應的資料為 ArrayBuffer |
object.success 回調函數
參數
Object res
屬性 | 類型 | 說明 | 最低版本 |
---|---|---|---|
data | string/Object/Arraybuffer | 開發者伺服器傳回的資料 | |
statusCode | number | 開發者伺服器傳回的 HTTP 狀态碼 | |
header | Object | 開發者伺服器傳回的 HTTP Response Header | 1.2.0 |
最終發送給伺服器的資料是 String 類型,如果傳入的 data 不是 String 類型,會被轉換成 String 。轉換規則如下:
對于 GET 方法的資料,會将資料轉換成 query string(encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)…)
對于 POST 方法且 header[‘content-type’] 為 application/json 的資料,會對資料進行 JSON 序列化
對于 POST 方法且 header[‘content-type’] 為 application/x-www-form-urlencoded 的資料,會将資料轉換成 query string (encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)…)
利用封裝的wepy.request進行連接配接
wepy中wepy.request的大部分參數都差不多,不同在于wepy架構中已經添加好了async/await等,支援promise
注意事項以及開發中遇到的問題
- requst值支援同時有5個連接配接
- request的Url結尾必須有/,不然連接配接不成功
- request的HEADER字段,需與請求的url接口吻合,有時預設json并不一定可以得到顯示,content-type 設定為application/x-www-form-urlencoded
- 請求時,保持網絡暢通,request的時限為60秒