angular2+举例的http响应格式类型设置之公共service(继承上一版)

本文详细介绍了在Angular2+项目中如何创建一个公共的HTTP Service,用于处理不同API请求的响应格式,提升代码复用性和统一性。
摘要由CSDN通过智能技术生成

公共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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值