日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)小程序教程:微信小程序 網(wǎng)絡(luò)

網(wǎng)絡(luò)

在小程序/小游戲中使用網(wǎng)絡(luò)相關(guān)的 API 時(shí),需要注意下列問(wèn)題,請(qǐng)開發(fā)者提前了解。

創(chuàng)新互聯(lián)公司歡迎聯(lián)系:18980820575,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),創(chuàng)新互聯(lián)公司網(wǎng)頁(yè)制作領(lǐng)域十載,包括混凝土攪拌罐車等多個(gè)方面擁有豐富的網(wǎng)站維護(hù)經(jīng)驗(yàn),選擇創(chuàng)新互聯(lián)公司,為企業(yè)錦上添花。

1. 服務(wù)器域名配置

每個(gè)微信小程序需要事先設(shè)置通訊域名,小程序只可以跟指定的域名進(jìn)行網(wǎng)絡(luò)通信。包括普通 HTTPS 請(qǐng)求(wx.request)、上傳文件(wx.uploadFile)、下載文件( wx.downloadFile) 和 WebSocket 通信(wx.connectSocket)。

從基礎(chǔ)庫(kù) 2.4.0 開始,網(wǎng)絡(luò)接口允許與局域網(wǎng) IP 通信,但要注意 不允許與本機(jī) IP 通信。

從 2.7.0 開始,提供了 UDP 通信(wx.createUDPSocket)。

配置流程

服務(wù)器域名請(qǐng)?jiān)?「小程序后臺(tái)-開發(fā)-開發(fā)設(shè)置-服務(wù)器域名」 中進(jìn)行配置,配置時(shí)需要注意:

  • 域名只支持 https (wx.request、wx.uploadFile、wx.downloadFile) 和 wss (wx.connectSocket) 協(xié)議;
  • 域名不能使用 IP 地址(小程序的局域網(wǎng) IP 除外)或 localhost;
  • 可以配置端口,如 https://myserver.com:8080,但是配置后只能向 https://myserver.com:8080 發(fā)起請(qǐng)求。如果向 https://myserver.com、https://myserver.com:9091 等 URL 請(qǐng)求則會(huì)失敗。
  • 如果不配置端口。如 https://myserver.com,那么請(qǐng)求的 URL 中也不能包含端口,甚至是默認(rèn)的 443 端口也不可以。如果向 https://myserver.com:443 請(qǐng)求則會(huì)失敗。
  • 域名必須經(jīng)過(guò) ICP 備案;
  • 出于安全考慮,api.weixin.qq.com 不能被配置為服務(wù)器域名,相關(guān)API也不能在小程序內(nèi)調(diào)用。 開發(fā)者應(yīng)將 AppSecret 保存到后臺(tái)服務(wù)器中,通過(guò)服務(wù)器使用 getAccessToken 接口獲取 access_token,并調(diào)用相關(guān) API;
  • 對(duì)于每個(gè)接口,分別可以配置最多 20 個(gè)域名。

2. 網(wǎng)絡(luò)請(qǐng)求

超時(shí)時(shí)間

  • 默認(rèn)超時(shí)時(shí)間和最大超時(shí)時(shí)間都是 60s;
  • 超時(shí)時(shí)間可以在 app.json 或 game.json 中通過(guò) networktimeout 配置。

使用限制

  • 網(wǎng)絡(luò)請(qǐng)求的 referer header 不可設(shè)置。其格式固定為 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 為小程序的 appid,{version} 為小程序的版本號(hào),版本號(hào)為 0 表示為開發(fā)版、體驗(yàn)版以及審核版本,版本號(hào)為 devtools 表示為開發(fā)者工具,其余為正式版本;
  • wx.request、wx.uploadFile、wx.downloadFile 的最大并發(fā)限制是 10 個(gè);
  • wx.connectSocket 的最大并發(fā)限制是 5 個(gè)。
  • 小程序進(jìn)入后臺(tái)運(yùn)行后,如果 5s 內(nèi)網(wǎng)絡(luò)請(qǐng)求沒(méi)有結(jié)束,會(huì)回調(diào)錯(cuò)誤信息 fail interrupted;在回到前臺(tái)之前,網(wǎng)絡(luò)請(qǐng)求接口調(diào)用都會(huì)無(wú)法調(diào)用。

返回值編碼

  • 建議服務(wù)器返回值使用 UTF-8 編碼。對(duì)于非 UTF-8 編碼,小程序會(huì)嘗試進(jìn)行轉(zhuǎn)換,但是會(huì)有轉(zhuǎn)換失敗的可能。
  • 小程序會(huì)自動(dòng)對(duì) BOM 頭進(jìn)行過(guò)濾(只過(guò)濾一個(gè)BOM頭)。

回調(diào)函數(shù)

  • 只要成功接收到服務(wù)器返回,無(wú)論 statusCode 是多少,都會(huì)進(jìn)入 success 回調(diào)。請(qǐng)開發(fā)者根據(jù)業(yè)務(wù)邏輯對(duì)返回值進(jìn)行判斷。

3. 常見(jiàn)問(wèn)題

HTTPS 證書

小程序必須使用 HTTPS/WSS 發(fā)起網(wǎng)絡(luò)請(qǐng)求。請(qǐng)求時(shí)系統(tǒng)會(huì)對(duì)服務(wù)器域名使用的 HTTPS 證書進(jìn)行校驗(yàn),如果校驗(yàn)失敗,則請(qǐng)求不能成功發(fā)起。由于系統(tǒng)限制,不同平臺(tái)對(duì)于證書要求的嚴(yán)格程度不同。為了保證小程序的兼容性,建議開發(fā)者按照最高標(biāo)準(zhǔn)進(jìn)行證書配置,并使用相關(guān)工具檢查現(xiàn)有證書是否符合要求。

對(duì)證書要求如下:

  • HTTPS 證書必須有效;證書必須被系統(tǒng)信任,即根證書被已系統(tǒng)內(nèi)置部署 SSL 證書的網(wǎng)站域名必須與證書頒發(fā)的域名一致證書必須在有效期內(nèi)證書的信任鏈必需完整(需要服務(wù)器配置)
  • iOS 不支持自簽名證書;
  • iOS 下證書必須滿足蘋果 App Transport Security (ATS) 的要求;
  • TLS 必須支持 1.2 及以上版本。部分舊 Android 機(jī)型還未支持 TLS 1.2,請(qǐng)確保 HTTPS 服務(wù)器的 TLS 版本支持 1.2 及以下版本;
  • 部分 CA 可能不被操作系統(tǒng)信任,請(qǐng)開發(fā)者在選擇證書時(shí)注意小程序和各系統(tǒng)的相關(guān)通告。
    • Chrome 56/57 內(nèi)核對(duì) WoSign、StartCom 證書限制周知

證書有效性可以使用 openssl s_client -connect example.com:443 命令驗(yàn)證,也可以使用其他在線工具。

除了網(wǎng)絡(luò)請(qǐng)求 API 外,小程序中其他 HTTPS 請(qǐng)求如果出現(xiàn)異常,也請(qǐng)按上述流程進(jìn)行檢查。如 https 的圖片無(wú)法加載、音視頻無(wú)法播放等。

跳過(guò)域名校驗(yàn)

在微信開發(fā)者工具中,可以臨時(shí)開啟 開發(fā)環(huán)境不校驗(yàn)請(qǐng)求域名、TLS版本及HTTPS證書 選項(xiàng),跳過(guò)服務(wù)器域名的校驗(yàn)。此時(shí),在微信開發(fā)者工具中及手機(jī)開啟調(diào)試模式時(shí),不會(huì)進(jìn)行服務(wù)器域名的校驗(yàn)。

在服務(wù)器域名配置成功后,建議開發(fā)者關(guān)閉此選項(xiàng)進(jìn)行開發(fā),并在各平臺(tái)下進(jìn)行測(cè)試,以確認(rèn)服務(wù)器域名配置正確。

如果手機(jī)上出現(xiàn) “打開調(diào)試模式可以發(fā)出請(qǐng)求,關(guān)閉調(diào)試模式無(wú)法發(fā)出請(qǐng)求” 的現(xiàn)象,請(qǐng)確認(rèn)是否跳過(guò)了域名校驗(yàn),并確認(rèn)服務(wù)器域名和證書配置是否正確。


局域網(wǎng)通信

基礎(chǔ)庫(kù) 2.4.0 提供了 wx.startLocalServiceDiscovery 等一系列 mDNS API,可以用來(lái)獲取局域網(wǎng)內(nèi)提供 mDNS 服務(wù)的設(shè)備的 IP。 wx.request/wx.connectSocket/wx.uploadFile/wx.downloadFile 的 url 參數(shù)允許為 ${IP}:${PORT}/${PATH} 的格式,當(dāng)且僅當(dāng) IP 與手機(jī) IP 處在同一網(wǎng)段且不與本機(jī) IP 相同(一般來(lái)說(shuō),就是同一局域網(wǎng),如連接在同一個(gè) wifi 下)時(shí),請(qǐng)求/連接才會(huì)成功。

在這種情況下,不會(huì)進(jìn)行安全域的校驗(yàn),不要求必須使用 https/wss,也可以使用 http/ws。

wx.request({
  url: 'http://10.9.176.40:828'
  // 省略其他參數(shù)
})

wx.connectSocket({
  url: 'ws://10.9.176.42:828'
  // 省略其他參數(shù)
})

基礎(chǔ)庫(kù) 2.7.0 開始,提供了 wx.createUDPSocket 接口用于進(jìn)行 UDP 通信。通信規(guī)則同上,僅允許同一局域網(wǎng)下的非本機(jī) IP。

mDNS

目前小程序只支持通過(guò) mDNS 協(xié)議獲取局域網(wǎng)內(nèi)其他設(shè)備的 IP。iOS 上 mDNS API 的實(shí)現(xiàn)基于 Bonjour,Android 上則是基于 Android 系統(tǒng)接口。

serviceType

發(fā)起 mDNS 服務(wù)搜索 wx.startLocalServiceDiscovery 的接口有 serviceType 參數(shù),指定要搜索的服務(wù)類型。

serviceType 的格式和規(guī)范,iOS Bonjour Overview 在 Bonjour Names for Existing Service Types 有提及。

Android 文檔 對(duì)此也有提及。


分享標(biāo)題:創(chuàng)新互聯(lián)小程序教程:微信小程序 網(wǎng)絡(luò)
網(wǎng)頁(yè)URL:http://m.5511xx.com/article/codhpgs.html