支付宝小程序API 网络
2018-11-27 20:20 更新
支付宝小程序API 网络
my.httpRequest
向指定服务器发起一个跨域 http 请求。
入参
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
url | String | 是 | 目标服务器url |
headers | Object | 否 | 设置请求的 HTTP 头,默认 {'Content-Type': 'application/x-www-form-urlencoded'} |
method | String | 否 | 默认GET,目前支持GET,POST |
data | String | 否 | 请求参数 |
timeout | Number | 否 | 超时时间,单位ms,默认30000 |
dataType | String | 否 | 期望返回的数据格式,默认json,支持json,text,base64 |
success | Function | 否 | 调用成功的回调函数 |
fail | Function | 否 | 调用失败的回调函数 |
complete | Function | 否 | 调用结束的回调函数(调用成功、失败都会执行) |
success 返回值
名称 | 类型 | 描述 |
---|---|---|
data | String | 响应数据,格式取决于请求时的 dataType 参数 |
status | Number | 响应码 |
headers | Object | 响应头 |
错误码
error | 描述 |
---|---|
11 | 无权跨域 |
12 | 网络出错 |
13 | 超时 |
14 | 解码失败 |
19 | HTTP错误 |
代码示例
my.httpRequest({
url: 'http://httpbin.org/post',
method: 'POST',
data: {
from: '支付宝',
production: 'AlipayJSAPI',
},
dataType: 'json',
success: function(res) {
my.alert({content: 'success'});
},
fail: function(res) {
my.alert({content: 'fail'});
},
complete: function(res) {
my.hideLoading();
my.alert({content: 'complete'});
}
});
注意:如果 httpRequest 调用返回「无权调用该接口」时,则需要在开放平台的 httpRequest 中添加你需要访问的域名地址
my.uploadFile
上传本地资源到开发者服务器。
入参
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
url | String | 是 | 开发者服务器地址 |
filePath | String | 是 | 要上传文件资源的本地定位符 |
fileName | String | 是 | 文件名,即对应的 key, 开发者在服务器端通过这个 key 可以获取到文件二进制内容 |
fileType | String | 是 | 文件类型,image/video |
header | Object | 否 | HTTP 请求 Header |
formData | Object | 否 | HTTP 请求中其他额外的 form 数据 |
success | Function | 否 | 调用成功的回调函数 |
fail | Function | 否 | 调用失败的回调函数 |
complete | Function | 否 | 调用结束的回调函数(调用成功、失败都会执行) |
success 返回值
名称 | 类型 | 描述 |
---|---|---|
data | String | 服务器返回的数据 |
statusCode | String | HTTP 状态码 |
header | Object | 服务器返回的 header |
错误码
error | 描述 |
---|---|
11 | 文件不存在 |
12 | 上传文件失败 |
13 | 没有权限 |
代码示例
my.uploadFile({
url: '请使用自己服务器地址',
fileType: 'image',
fileName: 'file',
filePath: '...',
success: (res) => {
my.alert({
content: '上传成功'
});
},
});
my.downloadFile
下载文件资源到本地。
入参
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
url | String | 是 | 下载文件地址 |
header | Object | 否 | HTTP 请求 Header |
success | Function | 否 | 调用成功的回调函数 |
fail | Function | 否 | 调用失败的回调函数 |
complete | Function | 否 | 调用结束的回调函数(调用成功、失败都会执行) |
success 返回值
名称 | 类型 | 描述 |
---|---|---|
apFilePath | String | 文件临时存放的位置 |
错误码
error | 描述 |
---|---|
12 | 下载失败 |
13 | 没有权限 |
代码示例
my.downloadFile({
url: 'http://img.alicdn.com/tfs/TB1x669SXXXXXbdaFXXXXXXXXXX-520-280.jpg',
success({ apFilePath }) {
abridge.previewImage({
urls: [apFilePath],
});
},
fail(res) {
abridge.alert({
content: res.errorMessage || res.error,
});
},
});
my.connectSocket
创建一个 WebSocket 的连接;一个支付宝小程序同时只能保留一个 WebSocket 连接,如果当前已存在 WebSocket 连接,会自动关闭该连接,并重新创建一个新的 WebSocket 连接。
入参
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
url | String | 是 | 目标服务器url |
data | Object | 否 | 请求的参数 |
headers | Object | 否 | 设置请求的头部 |
success | Function | 否 | 调用成功的回调函数 |
fail | Function | 否 | 调用失败的回调函数 |
complete | Function | 否 | 调用结束的回调函数(调用成功、失败都会执行) |
错误码
error | 描述 |
---|---|
1 | 未知错误 |
2 | 网络连接已经存在 |
3 | URL参数为空 |
4 | 无法识别的URL格式 |
5 | URL必须以ws或者wss开头 |
6 | 连接服务器超时 |
7 | 服务器返回的https证书无效 |
8 | 服务端返回协议头无效 |
9 | WebSocket请求没有指定Sec-WebSocket-Protocol请求头 |
10 | 网络连接没有打开,无法发送消息 |
11 | 消息发送失败 |
12 | 无法申请更多内存来读取网络数据 |
示例代码
my.connectSocket({
url: 'test.php',
data: {},
header:{
'content-type': 'application/json'
},
method:"GET",
});
my.onSocketOpen
监听WebSocket连接打开事件。
示例代码
my.connectSocket({
url: 'test.php',
});
my.onSocketOpen(function(res) {
console.log('WebSocket 连接已打开!');
});
my.onSocketError
监听WebSocket错误。
示例代码
my.connectSocket({
url: '开发者的服务器地址'
});
my.onSocketOpen(function(res){
console.log('WebSocket 连接已打开!');
});
my.onSocketError(function(res){
console.log('WebSocket 连接打开失败,请检查!');
});
my.sendSocketMessage
通过 WebSocket 连接发送数据,需要先使用 my.connectSocket 发起建连,并在 my.onSocketOpen 回调之后再发送数据。
入参
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
data | String/ArrayBuffer | 是 | 需要发送的内容 |
success | Function | 否 | 回调函数 |
fail | Function | 否 | 调用失败的回调函数 |
complete | Function | 否 | 调用结束的回调函数(调用成功、失败都会执行) |
示例代码
my.sendSocketMessage({
data: this.data.toSendMessage, // 需要发送的内容
success: (res) => {
my.alert({content: '数据发送!' + this.data.toSendMessage});
},
});
my.onSocketMessage
监听WebSocket接受到服务器的消息事件。
回调返回值
名称 | 类型 |
---|---|
描述 | data |
String/ArrayBuffer | 服务器返回的消息 |
示例代码
my.connectSocket({
url: '服务器地址'
})
my.onSocketMessage(function(res) {
console.log('收到服务器内容:' + res.data)
})
my.closeSocket
入参
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
success | Function | 否 | 回调函数 |
fail | Function | 否 | 调用失败的回调函数 |
complete | Function | 否 | 调用结束的回调函数(调用成功、失败都会执行) |
代码示例
关闭WebSocket连接。
my.onSocketOpen(function() {
my.closeSocket()
})
my.onSocketClose(function(res) {
console.log('WebSocket 已关闭!')
})
my.onSocketClose
代码示例
监听WebSocket关闭。
onLoad() {
// 注意: 回调方法的注册在整个小程序启动阶段只要做一次,调多次会有多次回调
my.onSocketClose((res) => {
my.alert({content: '连接已关闭!'});
this.setData({
sendMessageAbility: false,
closeLinkAbility: false,
});
});
// 注意: 回调方法的注册在整个小程序启动阶段只要做一次,调多次会有多次回调
my.onSocketOpen((res) => {
my.alert({content: '连接已打开!'});
this.setData({
sendMessageAbility: true,
closeLinkAbility: true,
});
});
my.onSocketError(function(res){
my.alert('WebSocket 连接打开失败,请检查!' + res);
});
// 注意: 回调方法的注册在整个小程序启动阶段只要做一次,调多次会有多次回调
my.onSocketMessage((res) => {
my.alert({content: '收到数据!' + JSON.stringify(res)});
});
}
connect_start() {
my.connectSocket({
url: '服务器地址', // 开发者服务器接口地址,必须是 wss 协议,且域名必须是后台配置的合法域名
success: (res) => {
my.showToast({
content: 'success', // 文字内容
});
},
fail:()=>{
my.showToast({
content: 'fail', // 文字内容
});
}
});
},
- 注意:所有 on 开头的监听事件函数,建议放到 Page 页面的 onLoad() 函数中执行,否则容易造成多次监听同一个重复事件。
以上内容是否对您有帮助:
更多建议: