gpt4 book ai didi

Angular : How to extend HttpClient?

转载 作者:太空狗 更新时间:2023-10-29 17:20:49 26 4
gpt4 key购买 nike

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

我需要自定义 HttpClient 实现来设置特定的 header 、端点或响应拦截器(我不想使用 Restangular,我更愿意使用内置的 Angular HttpClient 实现)。

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

我知道 Restangular 可以做到这一点,但我更喜欢使用 HttpClient。怎么可能?

我找到了 this article但是,这是针对 Http 的,而不是针对 Angular 的新 HttpClient 实现。

最佳答案

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

  1. 让您的每个拦截器检查请求的 URL,要么让它正常工作,要么只调用 next.handle(req) 而不做任何其他操作,具体取决于 URL

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

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

我的直觉是选择#1

关于 Angular : How to extend HttpClient?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45906779/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com