公共http.serviece
/**
* 请求适配调用处理
* @param {any} apiData - API配置数据
* @param {string} authId - 权限ID
* @param {any} header - 追加在请求头的参数
* @param {any} pathParams - 请求的参数(若为替换在url中的参数,顺序需要url替换量顺序保持一致)
* @param {any} queryParams - 额外附件在请求地址末尾的参数
* @param {any} bodyParams - 请求体中传递的参数(主要使用于POST 或 PUT 请求场景)
* @param {boolean} isJumpFilter - 是否跳过filter,默认过filter
* @param {any} errorExcept - 要排除的错误处理,对象成员为需要排除的类别布尔值,如:invalidToken:true,noRight:true
* @param {string} responseType - 指定后台返回的数据格式(Text:0;Json:1;ArrayBuffer:2;Blob:3)
* @param {boolean} resRequireHeader - 响应是否需要返回headers信息,部分接口响应信息会放在Response Headers中
* @return {Promise<any>} 请求结果信息
*/
doHttpRes(apiData: any, authId: string, header: any, pathParams: any, queryParams: any = {
}, bodyParams: any = {
}, isJumpFilter: boolean = false, errorExcept: any = {
}, moduleName: string, responseType: number = null, resRequireHeader: boolean = false): Promise<any> {
let method = apiData[authId].method,
newHeader = this.makeRequestHeader(header, true, responseType),
url = this.makeRequestUrl(apiData[authId].url, isJumpFilter, pathParams, queryParams);
if (method === 'get') {
//GET请求
return this.http.get(url, newHeader)
.toPromise()
.then(this.extractData.bind(this, 'queryData', errorExcept, moduleName, resRequireHeader))
.catch(this.handleError.bind(this));
} else if (method === 'post') {
//POST请求
return this.http.post(url, JSON.stringify(bodyParams), newHeader)
.toPromise()
.then(this.extractData.bind(this, this.getOperateMethod(url), errorExcept, moduleName, resRequireHeader))
.catch(this.handleError.bind(this));
} else if (method === 'put') {
//PUT请求
return this.http.put(url