在微信小程式進行網路通信,只能和指定的網域進行通信,微信小程式包括四種類型的網路請求。
普通HTTPS請求(wx.request)
上傳檔案(wx.uploadFile)
下載檔案(wx.downloadFile)
下載檔(wx.downloadFile)
這裡以介紹
wx.request
,wx.uploadFile
,
三種網路請求為主
設定網域名稱
要微信小程式進行網路通訊,必須先設定網域,設定網域名稱:URL 網域不合法,請在mp 後台配置後重試要微信小程式。
在微信小程式的設定介面可以看到設定選項:
設定選擇
:
:可以看到設定
開發設定:
伺服器設定
https://example.com/api
是無法呼叫的,必須加上後面/
。 http請求
使用
wx.request可以發起http請求,一個微信小程式被限制為同時只有5個網路請求
。 function queryRequest(data){
wx.request({
url:"https://example.com/api/",
data:data,
header:{ // "Content-Type":"application/json"
},
success:function(res){ console.log(res.data)
},
fail:function(err){ console.log(err)
}
})
}
上面的程式碼會傳送一個http get請求,然後列印出回傳的結果。其中的參數也比較容易理解。
- url
伺服器的url位址
- data
伺服器的url位址
data:"xxx=xxx&xxx=xxx"data
請求的參數可以採用String 請求的參數可以採用String - 的形式
- 設定請求的header
- 介面成功的回調
method
http的方法,預設為GET請求
-
complete
wx.uploadFile呼叫介面結束之後的回調,無論成功或失敗該介面都會被呼叫
。為 ,api會啟動一個
請求,其中的
Content-type為multipart/form-data
。伺服器端需要按照該Content-type
類型接收檔案,範例程式碼:<pre class='brush:php;toolbar:false;'>function uploadFile(file,data) {
wx.uploadFile({
url: &#39;http://example.com/upload&#39;,
filePath: file,
name: &#39;file&#39;,
formData:data,
success:function(res){ console.log(res.data)
},
fail:function(err){ console.log(err)
}
})
}</pre>
其中的url
,header
,
,fail
以及,
success,
fail以及
(微信小程式應用號交流群563752274)這裡有區別的參數是:
- name
檔案對應的key,伺服器端需要透過
name
參數取得檔案。可以使用的其他參數
-
下載檔案
wx.downloadFile下載檔案的api為
,該api會啟動http get請求,並在下載成功之後返回檔案的臨時路徑,範例程式碼:
function downloadFile(url,typ,success){ wx.downloadFile({ url:url, type:typ, success:function(res){ if(success){ success(res.tempFilePath) } }, fail:function(err){ console.log(err) } }) }
function svaeFile(tempFile,success){
wx.saveFile({
tempFilePath:tempFile,
success:function(res){
var svaedFile=res.savedFilePath
if(success){
success(svaeFile)
}
}
})
}
其中的url,
header
fail,
complete和
wx.uploadFile的參數使用是一致的,其中有區別的參數是:
用於客戶端自動識別,可以使用的參數image/audio/video
- success
:下載成功之後的回調,以
主動持久化文件,實例代碼:tempFile '文件路徑'}
下載成功後的是臨時文件,只會在程式本次運行期間可以使用,如果需要持久的保存,需要調用方法
wx.saveFile
"networkTimeout":{ "request": 10000, "connectSocket": 10000, "uploadFile": 10000, "downloadFile": 10000 }
wx.saveFile保存臨時檔案到本地,提供給小程式下次啟動時使用,其中的參數:
tempFilePath
需要被保存文件的路径
success
保存成功的回调,返回保存成功的路径,使用res.savedFilePath
可以获取保存成功的路径
fail
失败的回调
complete
结束的回调
超时的设置
在微信小程序开发:MINA中已经提到了在app.js
中设置networkTimeout
可以设置四种类型网络访问的超时时间:
"networkTimeout":{ "request": 10000, "connectSocket": 10000, "uploadFile": 10000, "downloadFile": 10000 }
这里设置的超时时间对应着四种类型的网络请求。
更多微信小程式開發:http請求相关文章请关注PHP中文网!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3 Linux新版
SublimeText3 Linux最新版