百度智能小程序API 網(wǎng)絡(luò)

2020-08-10 16:02 更新

請求


request

解釋:發(fā)起網(wǎng)絡(luò)請求

方法參數(shù):Object

Object參數(shù)說明:

參數(shù)名 類型 必填 默認(rèn)值 說明
url String 開發(fā)者服務(wù)器接口地址
data Object/String 請求的參數(shù)
header Object 設(shè)置請求的 header,header 中不能設(shè)置 Referer
method String GET (需大寫) 有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE
dataType String json 如果設(shè)為 json,會嘗試對返回的數(shù)據(jù)做一次 JSON.parse
success Function 收到開發(fā)者服務(wù)成功返回的回調(diào)函數(shù)
fail Function 接口調(diào)用失敗的回調(diào)函數(shù)
complete Function 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)

success 返回參數(shù)說明:

參數(shù) 類型 說明
data Object/String 開發(fā)者服務(wù)器返回的數(shù)據(jù)
statusCode Number 開發(fā)者服務(wù)器返回的 HTTP 狀態(tài)碼
header Object 開發(fā)者服務(wù)器返回的 HTTP Response Header

data 數(shù)據(jù)說明:

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

1、對于 header[‘content-type’] 為 application/json 的數(shù)據(jù),會對數(shù)據(jù)進(jìn)行 JSON 序列化。

2、對于 header[‘content-type’] 為 application/x-www-form-urlencoded 的數(shù)據(jù),會將數(shù)據(jù)轉(zhuǎn)換成 query string (encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)…)。

示例:

swan.request({
    url: '/example/abc', //開發(fā)者服務(wù)器接口地址
    method: 'GET',
    dataType: 'json',
    data: {
        key1: 'value1' ,
        key2: {}
    },
    header: {
        'content-type': 'application/json' // 默認(rèn)值
    },
    success: function (res) {
        console.log(res.data);
    },
    fail: function (err) {
        console.log("錯誤碼:" + err.errCode);
        console.log("錯誤信息:" + err.errMsg);
    }
});
Bug & Tip 1、tip: content-type 默認(rèn)為 ‘a(chǎn)pplication/json’。 2、tip: url 中不能有端口。

上傳、下載


uploadFile

解釋:將本地資源上傳到開發(fā)者服務(wù)器,客戶端發(fā)起一個 HTTPS POST 請求,其中 content-type 為 multipart/form-data

方法參數(shù):Object

Object參數(shù)說明:

參數(shù) 類型 必填 說明
url String 開發(fā)者服務(wù)器 url
filePath String 要上傳文件資源的路徑
name String 文件對應(yīng)的 key , 開發(fā)者在服務(wù)器端通過這個 key 可以獲取到文件二進(jìn)制內(nèi)容
header Object HTTP 請求 Header, header 中不能設(shè)置 Referer
formData Object HTTP 請求中其他額外的 form data
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í)行)

success返回參數(shù)說明:

參數(shù) 類型 說明
data String 開發(fā)者服務(wù)器返回的數(shù)據(jù)
statusCode Number 開發(fā)者服務(wù)器返回的 HTTP 狀態(tài)碼

示例:

swan.chooseImage({
    success: function (res) {
        swan.uploadFile({
            url: 'https://smartapp.baidu.com/xxx', // 開發(fā)者服務(wù)器 url
            filePath: res.tempFilePaths[0], // 要上傳文件資源的路徑
            name: 'myfile',
            success: function (res) {
                console.log(res.statusCode);
            },
            fail: function (err) {
                console.log("錯誤碼:" + err.errCode);
                console.log("錯誤信息:" + err.errMsg);
            }
        });
    }
});
返回值: 返回一個uploadTask對象,通過uploadTask,可監(jiān)聽上傳進(jìn)度變化事件,以及取消上傳任務(wù)。

uploadTask 對象的方法列表:

方法 類型 說明
onProgressUpdate callback 監(jiān)聽上傳進(jìn)度變化
abort 中斷上傳任務(wù)

onProgressUpdate 返回參數(shù)說明:

參數(shù) 類型 說明
progress Number 上傳進(jìn)度百分比
totalBytesSent Number 已經(jīng)上傳的數(shù)據(jù)長度,單位 Bytes
totalBytesExpectedToSend Number 預(yù)期需要上傳的數(shù)據(jù)總長度,單位 Bytes

示例:

const uploadTask = swan.uploadFile({
    url: 'https://example.baidu.com/xxxx', //開發(fā)者服務(wù)器 url
    filePath: res.tempFilePaths[0], // 要上傳文件資源的路徑
    name: 'myfile',
    success: function (res){
        console.log(res.statusCode);
    },
    fail: function (err) {
        console.log("錯誤碼:" + err.errCode);
        console.log("錯誤信息:" + err.errMsg);
    }
});

uploadTask.onProgressUpdate(res => {
    console.log('上傳進(jìn)度', res.progress)
    console.log('已經(jīng)上傳的數(shù)據(jù)長度', res.totalBytesSent)
    console.log('預(yù)期需要上傳的數(shù)據(jù)總長度', res.totalBytesExpectedToSend)
});

uploadTask.abort(); // 取消上傳任務(wù)

downloadFile

解釋: 下載文件資源到本地,客戶端直接發(fā)起一個 HTTP GET 請求,返回文件的本地臨時路徑

方法參數(shù): Object

Object參數(shù)說明:

參數(shù) 類型 必填 說明
url String 下載資源的 url
header Object HTTP 請求 Header,header 中不能設(shè)置 Referer
success Function 下載成功后以 tempFilePath 的形式傳給頁面,res = {tempFilePath: ‘文件的臨時路徑’}
fail Function 接口調(diào)用失敗的回調(diào)函數(shù)
complete Function 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)

注意: 文件的臨時路徑,在智能小程序本次啟動期間可以正常使用,如需持久保存,需在主動調(diào)用 swan.saveFile,才能在智能小程序下次啟動時訪問得到。

success返回參數(shù)說明:

參數(shù) 類型 說明
tempFilePath String 臨時文件路徑,下載后的文件會存儲到一個臨時文件
statusCode Number 開發(fā)者服務(wù)器返回的 HTTP 狀態(tài)碼

示例:

swan.downloadFile({
    url: 'https://example.baidu.com/xxxx', //僅為示例,并非真實的資源
    success: function (res) {
        //下載成功
        if (res.statusCode === 200) {
            console.log("臨時文件路徑" + res.tempFilePath);
        }
    },
    fail: function (err) {
        console.log("錯誤碼:" + err.errCode);
        console.log("錯誤信息:" + err.errMsg);
    }
});
返回值: 返回一個 downloadTask 對象,通過 downloadTask ,可監(jiān)聽下載進(jìn)度變化事件,以及取消下載任務(wù)。

downloadTask 對象的方法列表:

方法 類型 說明
onProgressUpdate callback 監(jiān)聽上傳進(jìn)度變化
abort 中斷下載任務(wù)

onProgressUpdate 返回參數(shù)說明:

參數(shù) 類型 說明
progress Number 下載進(jìn)度百分比
totalBytesWritten Number 已經(jīng)下載的數(shù)據(jù)長度,單位 Bytes
totalBytesExpectedToWrite Number 預(yù)期需要下載的數(shù)據(jù)總長度,單位 Bytes

示例:

const downloadTask = swan.downloadFile({
    url: 'https://example.baidu.com/xxxx', //開發(fā)者服務(wù)器 url
    success: function (res){
        console.log(res.tempFilePath);
    },
    fail: function (err) {
        console.log("錯誤碼:" + err.errCode);
        console.log("錯誤信息:" + err.errMsg);
    }
});

downloadTask.onProgressUpdate(res => {
    console.log('下載進(jìn)度', res.progress);
    console.log('已經(jīng)下載的數(shù)據(jù)長度', res.totalBytesWritten);
    console.log('預(yù)期需要下載的數(shù)據(jù)總長度', res.totalBytesExpectedToWrite);
});

downloadTask.abort(); // 取消下載任務(wù)
Bug & Tip

1、tip: uploadFile 上傳文件大小限制為 25M。

WebSocket


connectSocket

解釋: 創(chuàng)建一個 WebSocket 連接。

參數(shù): Object

一個智能小程序同時只能有一個 WebSocket 連接,如果當(dāng)前已存在一個 WebSocket 連接,會替換成最新創(chuàng)建的WebSocket連接。

Object參數(shù)說明:

屬性名 類型  是否必須 說明
url String 開發(fā)者服務(wù)器接口地址,必須是 wss 協(xié)議,且域名必須是后臺配置的合法域名
protocolsArray Array 子協(xié)議數(shù)組
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í)行)

示例:

swan.connectSocket({
	url: 'wss://example.baidu.com'
});

onSocketOpen

解釋: 監(jiān)聽 WebSocket 連接打開事件。

參數(shù): CALLBACK

示例:

swan.onSocketOpen(function () {
    console.log('WebSocket連接已打開!');
}
});

onSocketError

解釋: 監(jiān)聽 WebSocket 錯誤

參數(shù): CALLBACK

示例: 

swan.connectSocket({
    url: 'wss://example.baidu.com'
});
swan.onSocketOpen(function (res) {
    console.log('WebSocket連接已打開!');
});
swan.onSocketError(function (res) {
    console.log('WebSocket連接打開失敗,請檢查!');
});

sendSocketMessage

解釋: 通過 WebSocket 連接發(fā)送數(shù)據(jù),需要先 connectSocket,并在 onSocketOpen 回調(diào)之后才能發(fā)送。

參數(shù): Object

Object參數(shù)說明:

屬性名 類型  是否必須 說明
data String/ArrayBuffer 需要發(fā)送的內(nèi)容
fail Function 失敗的回調(diào)函數(shù)
complete Function 執(zhí)行完成的回調(diào)函數(shù)

示例:

swan.sendSocketMessage({
    data: 'this is swan',
    complete: function () {
        console.log(new Date().getTime() + '    :i am complete');
    }
});

onSocketMessage

解釋: 監(jiān)聽 WebSocket 接受到服務(wù)器的消息事件

參數(shù): CALLBACK

示例:

swan.connectSocket({
    url: 'wss://example.baidu.com'
});
swan.onSocketMessage(function (res) {
    console.log('收到服務(wù)器內(nèi)容:' + res.data);
});

closeSocket

解釋: 關(guān)閉 WebSocket 連接。

參數(shù): Object

Object參數(shù)說明:

屬性名 類型  是否必須 說明
code Number 一個數(shù)字值表示關(guān)閉連接的狀態(tài)號,表示連接被關(guān)閉的原因。如果這個參數(shù)沒有被指定,默認(rèn)的取值是1000 (表示正常連接關(guān)閉)
reason String 一個可讀的字符串,表示連接被關(guān)閉的原因。這個字符串必須是不長于123字節(jié)的 UTF-8 文本(不是字符)
success Function 成功的回調(diào)函數(shù)
fail Function 失敗的回調(diào)函數(shù)
complete Function 執(zhí)行完成的回調(diào)函數(shù)

示例:

swan.closeSocket({
    code: 1001,
    reason: '網(wǎng)線被切了',
    success: function () {
        console.log('WebSocket 關(guān)閉');
    }
});

onSocketClose

解釋: 監(jiān)聽 WebSocket 關(guān)閉。

參數(shù): CALLBACK

示例:

swan.onSocketClose(function () {
    console.log('WebSocket 已關(guān)閉');
});

SocketTask

解釋: WebSocket 任務(wù),可通過 swan.connectSocket() 接口創(chuàng)建返回。

SocketTask 方法

1、send(對應(yīng) swan.sendSocketMessage)

2、close(對應(yīng) swan.closeSocket)

3、onOpen(對應(yīng) swan.onSocketOpen)

4、onClose(對應(yīng) swan.onSocketClose)

5、onError(對應(yīng) swan.onSocketError)

6、onMessage(對應(yīng) swan.onSocketMessage)

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號