百度智能小程序API 网络

由 Carrie 创建, 最后一次修改 2018-07-09

请求


request

解释:发起网络请求

方法参数:Object

Object参数说明:

参数名 类型 必填 默认值 说明
url String 开发者服务器接口地址
data Object/String 请求的参数
header Object 设置请求的 header,header 中不能设置 Referer
method String GET (需大写) 有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE
dataType String json 如果设为 json,会尝试对返回的数据做一次 JSON.parse
success Function 收到开发者服务成功返回的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

success 返回参数说明:

参数 类型 说明
data Object/String 开发者服务器返回的数据
statusCode Number 开发者服务器返回的 HTTP 状态码
header Object 开发者服务器返回的 HTTP Response Header

data 数据说明:

最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String 。转换规则如下:

1、对于 header[‘content-type’] 为 application/json 的数据,会对数据进行 JSON 序列化。

2、对于 header[‘content-type’] 为 application/x-www-form-urlencoded 的数据,会将数据转换成 query string (encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)…)。

示例:

swan.request({
    url: '/example/abc', //开发者服务器接口地址
    method: 'GET',
    dataType: 'json',
    data: {
        key1: 'value1' ,
        key2: {}
    },
    header: {
        'content-type': 'application/json' // 默认值
    },
    success: function (res) {
        console.log(res.data);
    },
    fail: function (err) {
        console.log("错误码:" + err.errCode);
        console.log("错误信息:" + err.errMsg);
    }
});
Bug & Tip 1、tip: content-type 默认为 ‘application/json’。 2、tip: url 中不能有端口。

上传、下载


uploadFile

解释:将本地资源上传到开发者服务器,客户端发起一个 HTTPS POST 请求,其中 content-type 为 multipart/form-data

方法参数:Object

Object参数说明:

参数 类型 必填 说明
url String 开发者服务器 url
filePath String 要上传文件资源的路径
name String 文件对应的 key , 开发者在服务器端通过这个 key 可以获取到文件二进制内容
header Object HTTP 请求 Header, header 中不能设置 Referer
formData Object HTTP 请求中其他额外的 form data
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数说明:

参数 类型 说明
data String 开发者服务器返回的数据
statusCode Number 开发者服务器返回的 HTTP 状态码

示例:

swan.chooseImage({
    success: function (res) {
        swan.uploadFile({
            url: 'https://smartapp.baidu.com/xxx', // 开发者服务器 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,可监听上传进度变化事件,以及取消上传任务。

uploadTask 对象的方法列表:

方法 类型 说明
onProgressUpdate callback 监听上传进度变化
abort 中断上传任务

onProgressUpdate 返回参数说明:

参数 类型 说明
progress Number 上传进度百分比
totalBytesSent Number 已经上传的数据长度,单位 Bytes
totalBytesExpectedToSend Number 预期需要上传的数据总长度,单位 Bytes

示例:

const uploadTask = swan.uploadFile({
    url: 'https://example.baidu.com/xxxx', //开发者服务器 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('上传进度', res.progress)
    console.log('已经上传的数据长度', res.totalBytesSent)
    console.log('预期需要上传的数据总长度', res.totalBytesExpectedToSend)
});

uploadTask.abort(); // 取消上传任务

downloadFile

解释: 下载文件资源到本地,客户端直接发起一个 HTTP GET 请求,返回文件的本地临时路径

方法参数: Object

Object参数说明:

参数 类型 必填 说明
url String 下载资源的 url
header Object HTTP 请求 Header,header 中不能设置 Referer
success Function 下载成功后以 tempFilePath 的形式传给页面,res = {tempFilePath: ‘文件的临时路径’}
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

注意: 文件的临时路径,在智能小程序本次启动期间可以正常使用,如需持久保存,需在主动调用 swan.saveFile,才能在智能小程序下次启动时访问得到。

success返回参数说明:

参数 类型 说明
tempFilePath String 临时文件路径,下载后的文件会存储到一个临时文件
statusCode Number 开发者服务器返回的 HTTP 状态码

示例:

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 ,可监听下载进度变化事件,以及取消下载任务。

downloadTask 对象的方法列表:

方法 类型 说明
onProgressUpdate callback 监听上传进度变化
abort 中断下载任务

onProgressUpdate 返回参数说明:

参数 类型 说明
progress Number 下载进度百分比
totalBytesWritten Number 已经下载的数据长度,单位 Bytes
totalBytesExpectedToWrite Number 预期需要下载的数据总长度,单位 Bytes

示例:

const downloadTask = swan.downloadFile({
    url: 'https://example.baidu.com/xxxx', //开发者服务器 url
    success: function (res){
        console.log(res.tempFilePath);
    },
    fail: function (err) {
        console.log("错误码:" + err.errCode);
        console.log("错误信息:" + err.errMsg);
    }
});

downloadTask.onProgressUpdate(res => {
    console.log('下载进度', res.progress);
    console.log('已经下载的数据长度', res.totalBytesWritten);
    console.log('预期需要下载的数据总长度', res.totalBytesExpectedToWrite);
});

downloadTask.abort(); // 取消下载任务
Bug & Tip

1、tip: uploadFile 上传文件大小限制为 25M。

WebSocket


connectSocket

解释: 创建一个 WebSocket 连接。

参数: Object

一个智能小程序同时只能有一个 WebSocket 连接,如果当前已存在一个 WebSocket 连接,会替换成最新创建的WebSocket连接。

Object参数说明:

属性名 类型  是否必须 说明
url String 开发者服务器接口地址,必须是 wss 协议,且域名必须是后台配置的合法域名
protocolsArray Array 子协议数组
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

示例:

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

onSocketOpen

解释: 监听 WebSocket 连接打开事件。

参数: CALLBACK

示例:

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

onSocketError

解释: 监听 WebSocket 错误

参数: CALLBACK

示例: 

swan.connectSocket({
    url: 'wss://example.baidu.com'
});
swan.onSocketOpen(function (res) {
    console.log('WebSocket连接已打开!');
});
swan.onSocketError(function (res) {
    console.log('WebSocket连接打开失败,请检查!');
});

sendSocketMessage

解释: 通过 WebSocket 连接发送数据,需要先 connectSocket,并在 onSocketOpen 回调之后才能发送。

参数: Object

Object参数说明:

属性名 类型  是否必须 说明
data String/ArrayBuffer 需要发送的内容
fail Function 失败的回调函数
complete Function 执行完成的回调函数

示例:

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

onSocketMessage

解释: 监听 WebSocket 接受到服务器的消息事件

参数: CALLBACK

示例:

swan.connectSocket({
    url: 'wss://example.baidu.com'
});
swan.onSocketMessage(function (res) {
    console.log('收到服务器内容:' + res.data);
});

closeSocket

解释: 关闭 WebSocket 连接。

参数: Object

Object参数说明:

属性名 类型  是否必须 说明
code Number 一个数字值表示关闭连接的状态号,表示连接被关闭的原因。如果这个参数没有被指定,默认的取值是1000 (表示正常连接关闭)
reason String 一个可读的字符串,表示连接被关闭的原因。这个字符串必须是不长于123字节的 UTF-8 文本(不是字符)
success Function 成功的回调函数
fail Function 失败的回调函数
complete Function 执行完成的回调函数

示例:

swan.closeSocket({
    code: 1001,
    reason: '网线被切了',
    success: function () {
        console.log('WebSocket 关闭');
    }
});

onSocketClose

解释: 监听 WebSocket 关闭。

参数: CALLBACK

示例:

swan.onSocketClose(function () {
    console.log('WebSocket 已关闭');
});

SocketTask

解释: WebSocket 任务,可通过 swan.connectSocket() 接口创建返回。

SocketTask 方法

1、send(对应 swan.sendSocketMessage)

2、close(对应 swan.closeSocket)

3、onOpen(对应 swan.onSocketOpen)

4、onClose(对应 swan.onSocketClose)

5、onError(对应 swan.onSocketError)

6、onMessage(对应 swan.onSocketMessage)

以上内容是否对您有帮助:
二维码
建议反馈
二维码