Angular中的http请求,我在其中传递数组

时间:2018-03-22 09:39:42

标签: angular http url get httprequest

我用来发出get请求的代码如下:

options: any;
getWithParameters(url: string, parameters: any): Observable<any> {
    this.options.params = this.getParameters(parameters); 
    console.log(this.options);
    this.loaderService.show();
    return this.http
        .get(url, this.options)
        .map(result => {
            return this.extractData(result);
        })
        .catch(ex => {
            return this.errorService.handleError(ex, this.errorService);
        }).finally(() => {
            this.options.params = {};
            this.loaderService.hide();
        });
}

getParameters(params: any): HttpParams {
    let parameters = new HttpParams();
    for (const key in params) {
        if (params.hasOwnProperty(key)) {
            const val = params[key];
            parameters = parameters.append(key, val);
        }
    }
    return parameters;
}

parameters是一个json。 parameters仅包含简单变量时:

  • CommercialName:“”
  • DraftNumber:“”
  • IdApplication:null

它工作,请求是 http://localhost:53035/Api/OfferApi/GetDraftList&IdApplication=null&CommercialName=&DraftNumber=

但是parameters包含如下数组:

  • CommercialName: “”
  • DraftNumber: “”
  • IdApplication:[“10”,“9”]

它不起作用,请求是 http://localhost:53035/Api/OfferApi/GetDraftList&IdApplication=10,9&CommercialName=&DraftNumber=

请求应以这种方式工作 http://localhost:53035/Api/OfferApi/GetDraftList&IdApplication[]=10&IdApplication[]=9&CommercialName=&DraftNumber=

有没有人有想法正确打印请求? 感谢

1 个答案:

答案 0 :(得分:-1)

首先你可以添加一个数组[]

getWithParameters(url: string, parameters: any[]): Observable<any> {}

第二件事是你可以创建一个模型对象。

getWithParameters(url: string, parameters: any[]): Observable<ModelObject> {}

感谢。