Angular 4 - 如何在Http拦截器中传递HttpParams

时间:2018-02-07 17:00:56

标签: angular angular-http-interceptors angular-httpclient

我有一个使用新的HttpClient调用后端的服务,如下所示

getFruits(a, b, c, d) {
    const params = new HttpParams()
       .set('apples', a)
       .set('bananas', b)
       .set('cherries', c)
       .set('dates', d);
       return this.http.get<Fruit[]>(this.GetFruits, {params});
  }

我正在尝试使用HttpInterceptors来生成模拟后端,以便在没有后端可用时进行测试。当我传递设定值但无法使其与动态值一起使用时,我能够得到响应。

if (request.url.match('http://localhost:8080/fruits/filter') && request.method === 'GET' &&
         (request.params.set('apples', '0')),
         (request.params.set('bananas', '10')),
         (request.params.set('cherries', '5')),
         (request.params.set('dates', '7'))) {
         console.log('INTERCEPTED WITH PARAMS');
         request = request.clone({url: '/assets/json/fruits.json'});
         return next.handle(request);
    }

这将成功返回,但这样做不起作用

 if (request.url.match('http://localhost:8080/fruits/filter') && request.method === 'GET' &&
             (request.params.set('apples', a)),
             (request.params.set('bananas', b)),
             (request.params.set('cherries', c)),
             (request.params.set('dates', d))) {
             console.log('INTERCEPTED WITH PARAMS');
             request = request.clone({url: '/assets/json/fruits.json'});
             return next.handle(request);
        }

任何帮助/想法都将非常受欢迎!!!

0 个答案:

没有答案