
uni.request 是 Uni-App 提供的用于进行网络请求的 API,支持多种请求方式(如 GET、POST 等),并且可以处理请求的参数、头部、超时等设置。以下是对 uni.request 的各种参数和用法的详细讲解。
uni.request 的基本用法如下:
uni.request({
url: 'https://example.com/api',
method: 'GET',
success: (res) => {
console.log('请求成功:', res.data);
},
fail: (error) => {
console.error('请求失败:', error);
}
});uni.request 接受一个对象作为参数,该对象可以包含以下属性:
url (必填)'https://api.example.com/data'method (可选)GET 和 POST。默认值为 GET。'POST'data (可选)GET 请求,参数会附加在 URL 后面;对于 POST 请求,参数会作为请求体发送。GET 请求:{ id: 1, name: 'example' }POST 请求:{ username: 'user', password: 'pass' }header (可选)描述:请求头部信息,可以是一个对象,用于设置请求的 Content-Type、Authorization 等。
示例:
{
'Content-Type': 'application/json',
'Authorization': 'Bearer token'
}timeout (可选)fail 回调。5000(表示 5 秒)responseType (可选)text 和 arraybuffer。默认值为 text。'arraybuffer'success (可选)描述:请求成功的回调函数,接收一个参数 res,包含响应的信息。
示例:
success: (res) => {
console.log('数据:', res.data);
}fail (可选)描述:请求失败的回调函数,接收一个参数 error,包含错误信息。
示例:
fail: (error) => {
console.error('请求失败:', error);
}complete (可选)描述:请求完成的回调函数(不论成功或失败),接收一个参数 res,包含请求的信息。
示例:
complete: (res) => {
console.log('请求完成:', res);
}uni.request({
url: 'https://api.example.com/getData',
method: 'GET',
data: {
id: 1
},
success: (res) => {
console.log('获取数据成功:', res.data);
},
fail: (error) => {
console.error('获取数据失败:', error);
}
});uni.request({
url: 'https://api.example.com/postData',
method: 'POST',
data: {
username: 'user',
password: 'pass'
},
header: {
'Content-Type': 'application/json'
},
success: (res) => {
console.log('提交数据成功:', res.data);
},
fail: (error) => {
console.error('提交数据失败:', error);
}
});uni.request({
url: 'https://api.example.com/data',
method: 'GET',
timeout: 3000, // 3秒超时
success: (res) => {
console.log('请求成功:', res.data);
},
fail: (error) => {
if (error.errMsg.includes('timeout')) {
console.error('请求超时');
} else {
console.error('请求失败:', error);
}
}
});completeuni.request({
url: 'https://api.example.com/data',
method: 'GET',
complete: (res) => {
console.log('请求完成:', res);
}
});在实际开发中,处理请求错误非常重要。可以根据 error 对象的属性进行分类处理。
uni.request({
url: 'https://api.example.com/data',
success: (res) => {
console.log('请求成功:', res.data);
},
fail: (error) => {
if (error.errMsg.includes('timeout')) {
console.error('请求超时');
} else if (error.errMsg.includes('not found')) {
console.error('资源未找到');
} else {
console.error('请求失败:', error);
}
}
});可以在 success 回调中根据 HTTP 状态码判断请求是否成功。
uni.request({
url: 'https://api.example.com/data',
method: 'GET',
success: (res) => {
if (res.statusCode === 200) {
console.log('数据:', res.data);
} else {
console.error('服务器错误:', res.statusCode);
}
},
fail: (error) => {
console.error('请求失败:', error);
}
});uni.request 是 Uni-App 中进行网络请求的主要方式,支持多种参数配置,使得开发者可以灵活地处理各种请求场景。