一.项目下新建utils文件夹
1.建config.js文件
const config = {
base_url: '这里可以是生产环境或者测试环境'
}
export { config }
2.建http.js文件 (md5加密-选用)
import {
config
} from './config.js'
// var md5 = require('md5-node');
export const apiResquest = (prams) => { //prams 为我们需要调用的接口API的参数 下面会贴具体代码
// 判断请求类型
let headerData = {
'content-type': 'application/json'
}
let newTime = new Date().getTime()
function getRandomString (){
const chars = 'ABCDEFGHIJKLMNOPQRSTWXYZabcdefghijklmnopqrstuvwxyz0123456789';
const maxPos = chars.length;
let str = '';
for (let i = 0; i < 6; i++) {
str += chars.charAt(Math.floor(Math.random() * maxPos));
}
return str;
}
let randomString = getRandomString()
function getSignStr (nonce, time){
const str = ['nonce', nonce, 'secret', config.private, 'time', time].map(item => encodeURI(item)).join('');
return str
// return md5(str)
}
let signStr = getSignStr(randomString,newTime)
if(uni.getStorageSync('skey')){
headerData = {
'content-type': 'application/json',
'skey': uni.getStorageSync('skey'),
'time': newTime,
'nonce': randomString,
'sign': signStr,
}
}
let dataObj = {
...prams.query
}
return new Promise((resolve, reject) => {
let url = config.base_url + prams.url; //请求的网络地址和局地的api地址组合
uni.showLoading({
title: '加载中',
mask: true
})
return uni.request({
url: url,
data: dataObj,
method: prams.method,
header: headerData,
success: (res) => {
uni.hideLoading()
//这里是成功的返回码,大家根据自己的实际情况调整
if (res.data.code !== '200') {
uni.showToast({
title: '获取数据失败:' + res.data.msg,
duration: 1000,
icon: "none"
})
return;
}
resolve(res.data);
},
fail: (err) => {
reject(err);
console.log(err)
uni.hideLoading()
},
complete: () => {
console.log('请求完成')
uni.hideLoading()
}
});
})
}
二.项目下新建api文件夹
1.建立xx.js
import { apiResquest } from '../utils/http.js'
//GEt 请求案例
export const getUserLoginInfo = (query) => {
return apiResquest({
url: '/login',
method: 'GET',
query: {...query}
})
}
//POST 请求案例
export const testApi = (query) => {
return apiResquest({
url: '/api/test',
method: 'POST',
query: {...query}
})
}
三.页面中调用
// script内引入
import { getUserLoginInfo,testApi } from '../../api/login.js'
getUserLoginInfo({
code: '参数code'
})
.then((res)=>{
console.log('.then成功');
uni.setStorageSync('skey',res.data.skey)
})
.catch(()=>{
})