Angular 4.3&5:如何扩展HttpClient?

ero*_*oak 7 api httpclient interceptor angular

我没有在文档中找到如何扩展HttpClient或如何为我的一些HTTP请求指定不同的拦截器.在文档中,他们解释了如何设置拦截器,HTTP_INTERCEPTORS但每个HTTP请求都被截获.

我需要自定义HttpClient实现来设置细节标题,端点或响应拦截器(我不想使用Restangular,我更喜欢使用内置的角度HttpClient实现).

  • 我有一个带有特定端点和特定标头的oAuth API来设置我的api-key.
  • 我还有我的"资源"API需要特定的头(Authorization: Bearer...和API-KEY)和特定的响应拦截器来捕获所有HTTP 401响应.
  • 也许,我需要在没有任何拦截器的情况下调用一些外部API

我知道这可以使用Restangular,但我更喜欢使用HttpClient.这怎么可能 ?

我发现这篇文章但是,这Http不适用于HttpClient角度4.3 的新实现.

Gre*_*eek 2

我不会扩展 HttpClient,而是采用以下三种方法之一:

  1. 让每个拦截器检查请求的 URL,然后根据 URL 的不同,要么执行该请求,要么仅调用next.handle(req)而不执行任何其他操作

或者

  1. 编写一个委托拦截器,根据您的要求决定委托给哪些其他拦截器。

或者

  1. 只需编写一个大的拦截器,根据 URL/您需要的任何内容来决定做什么。

我的直觉是选择#1