React封装axios 请求接口
requestService.js
import axios from "axios";
import _ from "lodash";
import qs from "qs";
var service = axios.create({
timeout: 40000,
headers: { "Content-Type": "application/x-www-form-urlencoded" }
});
// //添加请求拦截器
// service.interceptors.request.use(function (config) {
// if (store.getters.token) {
// config.headers['TOKEN'] = getCookie('TOKEN')
// }
// return config
// }, function (error) {
// return Promise.reject(error)
// })
export default {
//get请求
get(url, param) {
return new Promise((resolve, reject) => {
service({
method: "GET",
url,
params: param,
crossdomain: true,
headers: {
"Content-Type": "application/json",
"Access-Control-Allow-Origin": "*",
"token": sessionStorage.getItem('token')
},
})
.then(res => {
//axios返回的是一个promise对象
resolve(res); //resolve在promise执行器内部
})
.catch(err => {
reject(err.message);
});
});
},
//post请求
post(url, param) {
console.log(sessionStorage.getItem('token'));
return new Promise((resolve, reject) => {
service({
method: "POST",
headers: {
"Content-Type": "application/json",
"Access-Control-Allow-Origin": "*",
"token": sessionStorage.getItem('token')
},
url,
data: param
})
.then(res => {
let requestStatus = res.status;
if (requestStatus === 200) {
let data = res.data;
resolve(data);
} else {
reject(res.statusText);
}
})
.catch(err => {
reject(err.message);
});
});
},
postFormData(url, param) {
return new Promise((resolve, reject) => {
service({
method: "POST",
headers: {
"Content-Type": "multipart/form-data",
"Access-Control-Allow-Origin": "*",
"token": sessionStorage.getItem('token')
},
url,
data: param
})
.then(res => {
let requestStatus = res.status;
if (requestStatus === 200) {
let data = res.data;
resolve(data);
} else {
reject(res.statusText);
}
})
.catch(err => {
reject(err.message);
});
});
},
postForUrl(url, param) {
return new Promise((resolve, reject) => {
service({
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
"Access-Control-Allow-Origin": "*",
"token": sessionStorage.getItem('token')
},
url,
crossdomain: true,
params: param
})
.then(res => {
let requestStatus = res.status;
if (requestStatus === 200) {
let data = res.data;
resolve(data);
} else {
reject(res.statusText);
}
})
.catch(err => {
reject(err.message);
});
});
},
uploadFile(url, param) {
return new Promise((resolve, reject) => {
service({
method: "POST",
url,
data: param,
headers: {
"Content-Type": "multipart/form-data",
"Access-Control-Allow-Origin": "*",
"token": sessionStorage.getItem('token')
},
})
.then(res => {
console.log(res);
let requestStatus = res.status;
if (requestStatus === 200) {
let data = res.data;
console.log();
let dataStatus = data.code;
if (dataStatus === 200) {
resolve(data);
} else {
reject(data);
}
} else {
console.log(res);
reject(res.statusText);
}
})
.catch(err => {
reject(err.message);
});
});
}
};
network.js
import RequestServices from "./requestService";
import axios from "axios";
const CancelToken = axios.CancelToken;
const source = CancelToken.source();
/**
* 从服务器获取数据
* @param {*} requestUrl 接口地址
* @param {*} requestParams 请求参数
* @param {Array} responseParams 返回数据中需要的参数名 返回的数据会根据responseParams参数列表的顺序返回数据。
*/
export function getData(requestUrl, requestParams, responseParams) {
let requestPromise = new Promise((resolve, reject) => {
RequestServices.post(requestUrl, requestParams).then(
function (res) {
let dataStatus = res.code;
if (dataStatus == 200) {
let resultData = [];
if (responseParams != null && typeof responseParams != undefined) {
responseParams.map((ele, i) => {
let responseParamData = res[ele];
resultData.push(responseParamData);
});
}
resolve(resultData);
} else if (dataStatus === 106) {
//登录状态超时
window.userOuted && window.userOuted();
reject("登录状态超时,请重新登录。");
} else if (dataStatus === 300) {
source.cancel();
window.userOuted && window.userOuted();
reject("用户登录信息过期,请重新登录。");
} else {
if (res.data.length > 0) {
reject(res.data[0]);
} else if (res.data) {
reject(res.data);
} else {
reject(res.msg);
}
}
},
function (err) {
reject(err);
}
);
});
return requestPromise;
}
/**
* 从服务器获取数据 request for formdata
* @param {*} requestUrl 接口地址
* @param {*} requestParams 请求参数
* @param {Array} responseParams 返回数据中需要的参数名 返回的数据会根据responseParams参数列表的顺序返回数据。
*/
export function getDataForFormData(requestUrl, requestParams, responseParams) {
let requestPromise = new Promise((resolve, reject) => {
RequestServices.postFormData(requestUrl, requestParams).then(
function (res) {
let dataStatus = res.status;
if (dataStatus === 200) {
let resultData = [];
if (responseParams != null && typeof responseParams != undefined) {
responseParams.map((ele, i) => {
let responseParamData = res[ele];
resultData.push(responseParamData);
});
}
resolve(resultData);
} else if (dataStatus === 106) {
//登录状态超时
window.userOuted && window.userOuted();
reject("登录状态超时,请重新登录。");
} else if (dataStatus === 300) {
source.cancel();
window.userOuted && window.userOuted();
reject("用户登录信息过期,请重新登录。");
} else {
reject({ message: res.msg });
}
},
function (err) {
reject(err);
}
);
});
return requestPromise;
}
/**
* 从服务器获取数据
* @param {*} requestUrl 接口地址
* @param {Array} responseParams 返回数据中需要的参数名 返回的数据会根据responseParams参数列表的顺序返回数据。
*/
export function getDataForUrl(requestUrl, responseParams) {
let requestPromise = new Promise((resolve, reject) => {
RequestServices.postForUrl(requestUrl, null).then(
function (res) {
let dataStatus = res.status;
if (dataStatus === 200) {
let resultData = [];
if (responseParams != null && typeof responseParams != undefined) {
responseParams.map((ele, i) => {
let responseParamData = res[ele];
resultData.push(
typeof responseParamData === "undefined"
? null
: responseParamData
);
});
}
resolve(resultData);
} else if (dataStatus === 106) {
//登录状态超时
window.userOuted && window.userOuted();
reject("登录状态超时,请重新登录。");
} else if (dataStatus === 300) {
source.cancel();
window.userOuted && window.userOuted();
reject("用户登录信息过期,请重新登录。");
} else {
reject(res.msg);
}
},
function (err) {
reject(err);
}
);
});
return requestPromise;
}
/**
* 向服务器发送数据 无需接收返回值
* @param {*} requestUrl
* @param {*} requestParams
*/
export function sendData(requestUrl, requestParams) {
let requestPromise = new Promise((resolve, reject) => {
RequestServices.post(requestUrl, requestParams).then(
function (res) {
let dataStatus = res.status;
if (dataStatus === 200) {
resolve(["success"]);
} else if (dataStatus === 106) {
//登录状态超时
window.userOuted && window.userOuted();
reject("登录状态超时,请重新登录。");
} else if (dataStatus === 300) {
source.cancel();
window.userOuted && window.userOuted();
reject("用户登录信息过期,请重新登录。");
} else {
reject(res.msg);
}
},
function (err) {
reject(err);
}
);
});
return requestPromise;
}
/**
* 向服务器发送数据 无需接收返回值
* @param {*} requestUrl
*/
export function sendDataForUrl(requestUrl) {
let requestPromise = new Promise((resolve, reject) => {
RequestServices.postForUrl(requestUrl, null).then(
function (res) {
console.log(res);
let dataStatus = res.status;
if (dataStatus === 200) {
resolve(["success"]);
} else if (dataStatus === 106) {
//登录状态超时
window.userOuted && window.userOuted();
reject("登录状态超时,请重新登录。");
} else if (dataStatus === 300) {
source.cancel();
window.userOuted && window.userOuted();
reject("用户登录信息过期,请重新登录。");
} else {
reject(res.msg);
}
},
function (err) {
reject(err);
}
);
});
return requestPromise;
}
/**
* 上传文件
* @param {*} requestUrl 请求url
* @param {*} requestParams 请求参数
* @param {*} responseParams 接收返回数据
*/
export function uploadFile(requestUrl, requestParams, responseParams) {
let requestPromise = new Promise((resolve, reject) => {
RequestServices.uploadFile(requestUrl, requestParams).then(
function (res) {
console.log(res);
let dataStatus = res.code;
if (dataStatus === 200) {
let resultData = [];
if (responseParams != null && typeof responseParams != undefined) {
responseParams.map((ele, i) => {
let responseParamData = res[ele];
resultData.push(responseParamData);
});
}
resolve(resultData);
} else if (dataStatus === 106) {
//登录状态超时
window.userOuted && window.userOuted();
reject("登录状态超时,请重新登录。");
} else if (dataStatus === 300) {
source.cancel();
window.userOuted && window.userOuted();
reject("用户登录信息过期,请重新登录。");
} else {
console.log(res);
reject(res.msg);
}
},
function (err) {
console.log(err);
reject(err);
}
);
});
return requestPromise;
}
/**
* 从服务器获取数据
* @param {*} requestUrl 接口地址
* @param {*} requestParams 请求参数
* @param {Array} responseParams 返回数据中需要的参数名 返回的数据会根据responseParams参数列表的顺序返回数据。
*/
export function getDataByGet(requestUrl, requestParams, responseParams) {
let requestPromise = new Promise((resolve, reject) => {
RequestServices.get(requestUrl, requestParams).then(
function (resData) {
console.log(resData);
let res = resData.data;
let dataStatus = res.code;
if (dataStatus == "200") {
let resultData = [];
console.log("已执行");
if (responseParams != null && typeof responseParams != undefined) {
responseParams.map((ele, i) => {
let responseParamData = res[ele];
resultData.push(responseParamData);
});
}
console.log(resultData);
resolve(resultData);
} else if (dataStatus === 106) {
//登录状态超时
window.userOuted && window.userOuted();
reject("登录状态超时,请重新登录。");
} else if (dataStatus === 300) {
source.cancel();
window.userOuted && window.userOuted();
reject("用户登录信息过期,请重新登录。");
} else {
console.log(res);
if (res.data) {
if (res.data.length > 0) {
reject(res.data[0]);
} else {
reject(res.msg);
}
} else {
reject(res.msg);
}
}
},
function (err) {
reject(err);
}
);
});
return requestPromise;
}
/**
* 从服务器获取数据(请求失败可以获得响应数据)
* @param {*} requestUrl 接口地址
* @param {*} requestParams 请求参数
* @param {Array} responseParams 返回数据中需要的参数名 返回的数据会根据responseParams参数列表的顺序返回数据。
*/
export function getDataByGetAndRes(requestUrl, requestParams, responseParams) {
let requestPromise = new Promise((resolve, reject) => {
RequestServices.get(requestUrl, requestParams).then(
function (resData) {
console.log(resData);
let res = resData.data;
let dataStatus = res.code;
if (dataStatus == "200") {
let resultData = [];
console.log("已执行");
if (responseParams != null && typeof responseParams != undefined) {
responseParams.map((ele, i) => {
let responseParamData = res[ele];
resultData.push(responseParamData);
});
}
console.log(resultData);
resolve(resultData);
} else if (dataStatus === 106) {
//登录状态超时
window.userOuted && window.userOuted();
reject("登录状态超时,请重新登录。");
} else if (dataStatus === 300) {
source.cancel();
window.userOuted && window.userOuted();
reject("用户登录信息过期,请重新登录。");
} else {
reject(res);
}
},
function (err) {
reject(err);
}
);
});
return requestPromise;
}
应用
import Api from './api';
import * as network from '@/Networking/network';
export function findAllTaskInfoList() {
let requestUrl = Api.appMain.applicationDirectoryV3 + Api.task.findAllTaskInfoList;
let requestPromise = new Promise((resolve, reject) => {
network.getDataByGet(requestUrl, "", ["data"]).then((data) => {
resolve(data[0]);
}).catch((error) => {
reject(error);
});
});
return requestPromise;
}
export function findAllDoneTaskInfoList(params) {
let requestUrl = Api.appMain.applicationDirectoryV3 + Api.task.findAllDoneTaskInfoList;
let requestParams = {
pageNumber:params.page,
pageSize:12
}
let requestPromise = new Promise((resolve, reject) => {
network.getData(requestUrl, requestParams, ["data","total"]).then((data) => {
let dataSource = {
tableData: data[0],
total: data[1],
}
resolve(dataSource);
}).catch((error) => {
reject(error);
});
});
return requestPromise;
}

浙公网安备 33010602011771号