Angular 7 Http获取请求将对象发送为参数

时间:2019-07-16 08:04:47

标签: typescript angular7

这就是我发送请求的方式。

localhost:8080/api/user?id=53380&name=raj&start=1&rows=5

其中id = 53380&name = raj是一个对象。

尝试设置参数并按以下方式发送。

 let params: URLSearchParams = this.objToSearchParams(this.search); // this.search =  {id: 53380, name: raj}
 params.set("start", 1);
 params.set("rows", 5)

     return this._http.get('/api/user', {params: params})
                .map(response => response['result'])
                .catch(this.handleError);


 objToSearchParams(obj): URLSearchParams{
    let params: URLSearchParams = new URLSearchParams();
    for (var key in obj) {
        if (obj.hasOwnProperty(key))
            params.set(key, obj[key]);
    }
    return params;
 }

执行此代码后,此请求不会发送任何API调用请求

localhost:8080/api/user

没有参数发送。我该如何实现?我需要手动将其一一转换吗?

1 个答案:

答案 0 :(得分:0)

要做类似的事情:

getCustomerByCustomerName(customerName : string):Observable<Customer[]>{
    return this.http.get<Customer[]>(`${this.api.catchApiUrl()}Customer/GetCustomerByCustomerName?customerName=${customerName}`)
}

您可以这样做:

getCustomerByCustomerName(custName : string):Observable<Customer[]>{
    return this.http.get<Customer[]>(`${this.api.catchApiUrl()}Customer/GetCustomerByCustomerName`,{
      params : {
        customerName : custName
      }
    })
}

尝试逐个参数地进行操作,如果可行,将其放在对象中。

我发现this也许您可以找到所需的内容。