支付宝小程序API 网络
向指定服务器发起一个跨域 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 |
否 |
调用结束的回调函数(调用成功、失败都会执行) |
名称 |
类型 |
描述 |
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 中添加你需要访问的域名地址
上传本地资源到开发者服务器。
名称 |
类型 |
必填 |
描述 |
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 |
否 |
调用结束的回调函数(调用成功、失败都会执行) |
名称 |
类型 |
描述 |
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: '上传成功'
});
},
});
下载文件资源到本地。
名称 |
类型 |
必填 |
描述 |
url |
String |
是 |
下载文件地址 |
header |
Object |
否 |
HTTP 请求 Header |
success |
Function |
否 |
调用成功的回调函数 |
fail |
Function |
否 |
调用失败的回调函数 |
complete |
Function |
否 |
调用结束的回调函数(调用成功、失败都会执行) |
名称 |
类型 |
描述 |
apFilePath |
String |
文件临时存放的位置 |
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,
});
},
});
创建一个 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",
});
监听WebSocket连接打开事件。
my.connectSocket({
url: 'test.php',
});
my.onSocketOpen(function(res) {
console.log('WebSocket 连接已打开!');
});
监听WebSocket错误。
my.connectSocket({
url: '开发者的服务器地址'
});
my.onSocketOpen(function(res){
console.log('WebSocket 连接已打开!');
});
my.onSocketError(function(res){
console.log('WebSocket 连接打开失败,请检查!');
});
通过 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});
},
});
监听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 已关闭!')
})
监听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() 函数中执行,否则容易造成多次监听同一个重复事件。