zoukankan      html  css  js  c++  java
  • post请求(下载文件)

    environment.ts:

    export const environment = {
      production: false,
      envName: 'dev',
      baseURL: 'http://xxxxxxxxxxxxxx/',
      baseURL1: 'http://xxxxxxxxxxxxxxxxxxx/',
      loginURL: 'http://xxxxxxxxxxxxxxxxxxxx/'
    };

    API.ts:

    export: environment.baseURL1+'manage/export',
     
    data.service.ts:
    getExportpage(params): Observable<any> {
    return this.http.Post(API.exportpage, params, 0, {
    msg: '报表导出列表',
    data: {}
    }).pipe(map(res => res.data));
    }

    http.service.ts:

      /**
       * 请求主体可以为 urlencoding、JSON、FormData 的 POST 请求
       * @param _url|string 请求地址
       * @param _params|ParamsType 参数对象
       * @param contentType|ContentType Post请求body编码格式
       * @param safeResponse|HttpResponseType 请求错误时的返回值
       * @param userNotification|boolean 是否显示操作提示弹框
       * @param errorSource|string 引起错误的操作来源
       */
      Post(_url: string, _params: ParamsType, contentType: PostContentType, safeResponse: HttpResponseType,
           userNotification: boolean = false, errorSource: string = ''): Observable<HttpResponseType> {
        const URL = this.URLPattern.test(_url) ? _url : environment.baseURL + _url;
        const contentTypeArray = [new HttpParams({fromObject: _params}), _params, this.toFormData(_params)];
        let messageID = '';
        // if (userNotification) {
        //   messageID = this.message.loading('添加中...', { nzDuration: 0 }).messageId;
        // }
        return this.httpClient.post(URL, contentTypeArray[contentType], {
    
        }).pipe(
          map((response: HttpResponseType) => {
            return this.responseHandler(response, messageID);
            }),
          catchError(this.handleError(safeResponse, errorSource, messageID))
        );
      }
    
    
    
      /**
       * Post 请求参数处理成 FormData 函数
       * @param _params|any
       */
      private toFormData(_params: any): FormData {
        if (!_params) {
          return new FormData();
        }
        if (_params.constructor === FormData) {
          return _params;
        }
        const formData = new FormData();
        for (const key in _params) {
          if (_params.hasOwnProperty(key)) {
            formData.append(key, _params[key]);
          }
        }
        return formData;
      }
    
    
      /**
       * 请求成功情况处理
       * @param response|HttpResponseType
       * @param messageID|string
       */
      private responseHandler(response: HttpResponseType, messageID: string): HttpResponseType {
        // this.message.remove(messageID);
        // this.message.success(response.msg);
        return response;
      }

    xx.component.ts:

      /**
     * Post下载
     */
      dwReport() {
        this.dataService.getExport({
          end: this.end,
          granularity: this.type,
          platform: this.platform,
          start: this.start
        }).subscribe(data => {
          let url = window.URL.createObjectURL(data);
          let link = document.createElement('a');
          link.style.display = 'none';
          link.href = url;
          link.download = this.platform + '报表.xls'; // docNumber 动态文件名
          document.body.appendChild(link);
          link.click();
        });
      }

    xx.component.html:

         <div class="tit_download">
                <a (click)="dwReport()">
                   点击下载
                </a>
            </div>
  • 相关阅读:
    HDU 5115 Dire Wolf (区间DP)
    HDU 4283 You Are the One(区间DP(最优出栈顺序))
    ZOJ 3469 Food Delivery(区间DP好题)
    LightOJ 1422 Halloween Costumes(区间DP)
    POJ 1651 Multiplication Puzzle(区间DP)
    NYOJ 石子合并(一)(区间DP)
    POJ 2955 Brackets(括号匹配一)
    POJ 1141 Brackets Sequence(括号匹配二)
    ZOJ 3537 Cake(凸包+区间DP)
    Graham求凸包模板
  • 原文地址:https://www.cnblogs.com/a1-top/p/14281003.html
Copyright © 2011-2022 走看看