網絡 API 類似於 ajax 向服務器請求網絡地址,唯一不同的是這個請求有很多的規則,且必須向服務器上請求,不能在本地請求
網絡
發送請求:
wx.request() 發起https網絡請求 參數:對象
對象的屬性:
url:類型 字符串 開發者服務器的接口地址(且擁有諸多的限制,必須是https的網絡請求)
如圖:
如果我們沒有合法的域名,也能進行測試:
我們需要對調試基礎庫的選項進行打勾就好了
data:類型 字符串/對象/數組/緩存 請求的參數
header:類型 對象 請求設置的 header (得到數據的返回值,默認是 json 格式,我們都知道在服務器請求到的數據都是字符串)
method:類型 字符串 請求的方式:
屬性值:options / get / head / post / put / delete / tract / connect 這是請求的方式
dataType:類型 字符串 返回的數據格式
屬性值:json 會對返回的數據為 json,如果不是,會對返回的數據進行一次 JSON.parse()
其他 不對返回的內容進行JSON.parse()
responseType:類型 字符串 響應的數據類型
屬性值:text 響應的數據為 文本
arraybuffer 響應的數據為 ArrayBuffer
success:類型 函數 接口返回成功的回調函數 對象對象上擁有3個屬性
屬性值:
data:類型 字符串/對象/數組/緩存 開發者服務器返回的數據
statusCode:類型 數字 開發者服務器返回的 http 碼
header:類型 對象 開發者服務器返回的 HTTP Response Header
RequestTask 網絡請求的任務對象(擁有屬性和方法)
RequestTask.abort() 中斷請求的任務 直接執行
RequestTask.onHeadersReceived() 監聽 HTTP Response Header 事件,會比請求完成事件更早 參數:回調函數 (事件對象的 header 屬性)返回值:開發者服務器返回 HTTP Response Header
RequestTask.offHeadersReceived() 取消監聽 HTTP Response Header 事件 參數:回調函數
下載:
wx.downloadFile() 下載文件資源到本地,客戶端直接發起一個 HTTPS GET 請求,返回文件的本地臨時路徑,單次下載允許的最大文件為 50 MB 參數:對象
注意:請在服務端響應的 header 中指定合理的 Content-Type 字段,以保證客戶端正確處理文件類型
對象的屬性:
url:類型 字符串 下載資源的url
header:類型 object HTTP 請求的 Header,Header 中不能設置 Referer
filePath:類型 字符串 指定文件下載后的儲存路徑
success:類型 函數 接口調用成功后的回調函數
事件對象上的屬性:
tempFilePath:類型 字符串 臨時文件的路徑,沒傳入 filePath 指定文件儲存路徑時會返回,下載后的文件儲存到一個臨時文件
filePath:類型 字符串 用戶文件路徑,傳入 filePath 時會返回,跟傳入的 filePath 一致
statusCode:類型 數字 開發者服務器返回的 HTTP 狀態碼
DownloadTask:一個可以監聽下載進度變化事件,以及取消下載任務的對象 (擁有屬性和方法)
Download.abort() 中斷下載任務
DownloadTask.onProgressUpdate() 監聽下載進度變化事件 參數:回調函數
事件對象的屬性:
progress:下載進度百分比
res.totalBytesWritten:已經下載的數據長度
res.totalBytesExpectedToWrite:預期需要下載的數據總長度
DownloadTask.offProquressUpdate() 取消監聽下載進度變化事件 直接使用
DownloadTask.onHeadersReceived() 監聽 HTTP Response Header 事件,會比請求完成事件更早 參數:回調函數
DownloadTask.offHeadersReceived() 取消監聽 HTTP Response Header 事件
上傳:
wx.uploadFile() 將本地資源上傳到服務器,客戶端發起一個 HTTPS POST 請求,其中 content-type 為 multipart/form-data。 參數:對象
對象的屬性:
url:類型 字符串 開發者服務器地址
filePath:類型 字符串 要上傳的文件資源路徑
name:類型 字符串 文件對應的 key ,開發者可以通過 key 獲取文件的二進制內容
header:類型 對象 HTTP 請求 Header,Header 中不能設置 Referer
formData:類型 對象 HTTP 請求中其他額外的 form data
success:類型 函數 接口調用成功的回調函數
事件對對象上的屬性
data:類型 字符串 開發者服務器返回的數據
statusCode:類型 數字 開發者服務器返回的 HTTP 狀態碼
uploadTask:一個可以監聽上傳進度變化事件,以及取消上傳任務的對象(擁有屬性和方法)
uploadTask.abort():中斷上傳任務
UploadTask.onProgressUpdate():監聽上傳進度變化事件
事件對象的屬性
progress:上傳進度百分比
totalBytesSent:已經上傳的數據長度
totalBytesExpectedToSend:預期需要上傳的數據總長度
UploadTask.offProgressUpdate():取消監聽上傳進度變化事件
UploadTask.onHeadersReceived():監聽 HTTP Response Header 事件,會比請求完成事件更早
UploadTask.offHeadersReceived():取消監聽 HTTP Response Header 事件
WebSocket
wx.sendSocketMessage():通過 WebSocket 連接發送數據,需要線 wx.connectSocker,並在 wx.onSocketOpen 回調之后才能發送 參數:對象
對象的屬性:
data:類型 字符串/數組/緩存 需要發送的內容
wx.onSocketOpen():監聽 WebSocket 連接打開事件 參數:回調函數
事件對象的屬性:
header:類型 對象 連接成功的 HTTP 響應 Header
wx.onSocketMessage():監聽 WebSocket 接受到服務器的消息事件 參數:回調函數
事件對象:
data:類型 對象/數組/緩沖 服務器返回的消息
wx.onSocketError():監聽 WebSocket 錯誤事件
wx.connectSocket():創建一個 WebSocket 連接 參數:對象
對象的屬性:
url:類型 字符串 (必填) 開發者服務器 wss 接口地址
header:類型 對象 HTTP 請求 Header (注意:這個 Header 中不能設置 Referer)
protocols:類型 數組 子協議數組
tcpNoDelay:類型 布爾 建立 TCP 連接的時候 TCP_NODELAY 設置
wx.closeSocket():關閉 WebSocket 連接 參數:對象
對象的屬性:
code:類型 數字 一個數字表示關閉連接的狀態號,表示被關閉的原因
reason:類型 字符串 一個可讀的字符串,表示被關閉的原因
SocketTask:WebSocket 任務,可通過 wx.connectSocket() 接口創建返回的對象(擁有屬性和方法)
SocketTask.send():通過 WebSocket 連接發送數據
SocketTask.close():關閉 WebSocket 連接
SocketTask.onOpen():監聽 WebSocket 連接打開事件
SocketTask.onClose():監聽 WebSocket 連接關閉事件
SocketTask.onError():監聽 WebSocket 錯誤事件
SocketTask.onMessage():監聽 WebSocket 接受到服務器的消息事件
mDNS
wx.stopLocalServiceDiscovery() 停止搜索 mDNS 服務 參數:對象
對象的屬性:
success:類型 成功 參數:回調函數
事件對象上的屬性:
errMsg:類型 字符串
屬性值:task not found 在當前沒有處在搜索服務中調用 stopLocalServiceDiscovery
wx.startLocalServiceDiscovery() 開始搜索局域網下的 mDNS 服務,搜索的結果會通過 wx.onLocalService 事件返回 參數:對象
對象的屬性:
serviceType:類型 字符串 要搜索的服務類型
success:事件對象的屬性:
errMsg:類型 字符串 錯誤信息
屬性值:invalid param serviceType 為空
scan task already exist 當前 startLocalServiceDiscovery() 發起搜索未停止的情況下,在次調用 startLocalServiceDiscovery()
wx.onLocalServiceResolveFail() 監聽 mDNS 服務解析失敗事件 參數:回調函數
事件對象上的屬性:serviceType:類型 字符串 服務的類型
serviceName:類型 字符串 服務的名字
wx.onLocalServiceLost() 監聽 mDNS 服務離開事件 參數:回調函數
事件對象上的屬性:serviceType:類型 字符串 服務的類型
serviceName:類型 字符串 服務的名字
wx.onLocalServiceFound() 監聽 mDNS 服務發現的事件 參數:回調函數
事件對象上的屬性:serviceType:類型 字符串 服務的類型
serviceName:類型 字符串 服務的名字
ip:類型 字符串 服務器的 ip 地址
port:類型 數字 服務器的端口
wx.onLocalServiceDiscoveryStop() 監聽 mDNS 服務停止搜索的事件 參數:回調函數
wx.offLocalServiceResolveFail() 取消監聽 mDNS 服務解析失敗的事件 參數:回調函數
wx.offLocalServiceLost() 取消監聽 mDNS 服務離開的事件 參數:回調函數
wx.offLocalServiceFound() 取消監聽 mDNS 服務發現的事件 參數:回調函數
wx.offLocalServiceDiscoveryStop() 取消監聽 mDNS 服務停止搜索的事件 參數:回調函數
UDP通信
wx.createUDPSocket() 創建一個 UDP Socket 實例 返回值:一個UDP Socket 的實例對象
UDPSocket 一個 UDP Socket 的 實例,默認使用 IPv4 協議
實例的方法:
UDPSocker.bind() 綁定一個系統隨機分配的可用端口
UDPSocket.send() 向指定的 IP 和 port 發送消息
UDPSocket.close() 關閉UDP Socket 實例,相當於銷毀。在關閉之后,UDP Socket 實例不能在發送消息,每次調用 UDP Socket.send 將會觸發錯誤事件,並且 message 事件回調函數也不會在執行。在UDP Socket 實例被創建后將被 Native 強引用,保證其不被GC。在UDPSocket.close 后將被解除對其的強引用,讓 UDPSocket 實例遵從 GC。
UDPSocket.onClose() 監聽關閉事件 參數:回調函數
UDPSocket.offClose() 取消監聽關閉事件 參數:回調函數
UDPSocket.onError() 監聽錯誤事件
UDPSocket.offError() 取消監聽錯誤事件
UDPSocket.onListening() 監聽開始監聽數據包消息的事件
UDPSocket.offListening() 取消監聽開始監聽數據包消息的事件
UDPSocket.onMessage() 監聽收到消息的事件
UDPSocket.offMessage() 取消監聽收到消息的事件