HttpClient 属性未通过 DI 传递

2024-03-19

我正在开发一个 ASP.NET Core 5.0 项目,该项目有一个访问 API 的服务。 根据下面的代码,我希望提供给 ToornamentService 构造函数的 HttpClient 包含声明的 BaseAddress 和 API 密钥标头。

然而,在调试时,我注意到 HttpClient 从来没有这些。 BaseAdress 为空,并且标头丢失。 我尝试使用 IHttpClientFactory 而不是类型化客户端,但最终得到相同的结果。

我究竟做错了什么?

配置服务方法:

public void ConfigureServices(IServiceCollection services)
    {
        //Omitted for brevity
        services.AddHttpClient<ToornamentService>(c =>
        {
            c.BaseAddress = new Uri("https://api.toornament.com/");
            c.DefaultRequestHeaders.Add("X-Api-Key", Configuration["Toornament:ApiKey"]);
        });

        services.AddTransient<ToornamentService>();
    }

锦标赛服务类:

public ToornamentService(HttpClient client)
    {
        Client = client; // client.BaseAddress here is null
    }

删除这一行:services.AddTransient<ToornamentService>();

你打电话时AddHttpClient,它注册服务for you作为瞬态。

所以你要做的就是注册两次。由于您的临时注册是最后一次注册,因此它优先于AddHttpClient登记。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HttpClient 属性未通过 DI 传递 的相关文章

随机推荐

  • 如何一次性从 PostgreSQL 表中删除所有 NOT NULL 约束

    是否可以一次性删除表中的所有 NOT NULL 约束 我有一个大表 其中有很多 NOT NULL 约束 并且我正在寻找一种比单独删除它们更快的解决方案 您可以将它们全部分组在同一个 alter 语句中 alter table tbl alt
  • 使用 django-imagekit 调整上传时的图像大小

    我正在使用 imagekit 来处理上传图像的自定义尺寸 虽然它可以很好地创建自定义尺寸的图像 但我想使用 imagekit 来调整图像的大小原始图像上传时 这可能吗 请点击上面的链接 根据您的喜好为原始图像创建处理器 调整大小 增强等 查
  • 当手机唤醒时,未传递的 AlarmManager 重复闹钟会发生什么情况?

    如果我们安排一个不精确的重复警报AlarmManager setInexactRepeating例如每小时触发一次 如果手机待机4小时然后被唤醒会发生什么 系统是否针对同一事件连续发出 4 次警报 PendingIntent或者它只发出一个
  • 如果页面上存在新的类和属性,如何向 div 添加新的类和属性

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我的母版页上需要 JavaScrip
  • 如何使用 mysqli 进行 LIKE 查询并获取所有结果?

    这是我的代码 但它不起作用 param POST user stmt db gt prepare SELECT id Username FROM users WHERE Username LIKE stmt gt bind param s
  • Mail.php 和 Smtp 身份验证问题

    我一直在尝试利用 jquery contactable 插件 在 google 上找到 中的 mail php 文件在我的网站上使用 尽管提供的脚本相当简单 但我在将其与主机的 SMTP 要求集成时遇到了问题 这是没有 SMTP 身份验证的
  • 在 Android Studio 中使用 JDK17 和记录(Java、Android)

    第1部分 获得此版本的 Android Studio 后 我可以使用JDK17在我的项目中 一切都很好 没有构建失败 没有运行时错误等 就像增强开关工作正常 但是这个警告在每次构建过程中都会不断出现 有什么办法可以suppress this
  • shell 中的“< <(command args)”是什么意思?

    当递归循环遍历包含空格的文件的文件夹时 我使用的 shell 脚本是这种形式 从internet http mywiki wooledge org BashFAQ 020 while IFS read r d 0 file do dosom
  • 为 UIControlStateHighlighted 自定义 UISearchBarIconClear 不起作用

    我有一个 UISearchBar 我为 UiControlStateNormal 设置了自定义 UISearchBarIconClear mySearchBar setImage myImage forSearchBarIcon UISea
  • AspectJ 编译器 (ajc) 与加载时编织

    这里有几个问题 ajc 是否会更改它编译的所有类 甚至是非方面的类 如果我只编译方面类 ant 然后将它们与常见的类路径放在同一个类路径中会怎样 ajc 编译的项目是否比使用加载时编织的项目执行得更快 如果我需要编写一个使用 AspectJ
  • Maven Archetype Plugin - 如何使用不包含 pom.xml 的部分原型?

    我们想创建一个部分原型来添加custom pom xml以及其他资源到现有项目中 然后 自定义 pom 将在生成的项目中使用mvn f custom pom xml 因此 我们的原型包含一个src main resources archet
  • Monitor.PulseAll() 中需要帮助

    任何人都可以用简单的例子来解释我如何处理 Monitor PulseAll 我已经从这个 stackoverflow 中获取了一些示例 由于我是初学者 我觉得这些超出了我的理解范围 怎么样 展示互动 static void Main obj
  • 如果 Web 服务器是非阻塞的,这是否意味着它处理 IO 的方式与 Node.js 相同?

    我很快就会使用名为 Undertow 的服务器 这website http undertow io says Undertow 是一个用 java 编写的灵活的高性能 Web 服务器 基于NIO提供阻塞和非阻塞API 如果Undertow允
  • 命令行查找、sed、exec

    我在一个文件夹 子文件夹中有一堆文件 我试图制作某种单行代码 以便偶尔快速复制 粘贴 内容如下 太长 无法粘贴到此处 http pastebin com 4aZCPbwT http pastebin com 4aZCPbwT 我尝试过以下命
  • Qt/Qml:如何包含地图图块以供离线使用?

    我需要将离线图块 滑动地图 包含到主要在 Android 和 iOS 上运行的 Qt Qml 移动应用程序中 我发现的唯一有据可查且有效的解决方案是商业 Esri Arcgis Runtime for Qt 但是 创建切片包需要使用 Arc
  • 表格太宽,无法容纳 Markdown 生成的 PDF

    我正在尝试使用 Rmarkdown 将 SQL 查询的表显示为 pdf 但是 我得到的表格太宽 不适合文档 有人建议我使用 Pander 包 因此我尝试使用 pandoc table 函数 该函数在控制台上运行良好 但由于某种原因 它阻止我
  • 一组玩家的所有可能的牌/扑克牌组合

    我正在寻找一个优雅 快速 的 python 函数 它可以从以下两个数组中生成每个组合 cards 8H 8S 8C 8D 9H 9S 9C 9D 10H 10S 10C 10D AH AS AC AD players 1 1 1 2 2 2
  • 你用 Sinatra 做什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Java 文档重写方法不具有 InheritDoc

    重写另一个方法的方法不会继承它所重写的方法的文档 有没有办法明确告诉它继承文档 inheritDoc This implementation uses a dynamic programming approach Override publ
  • HttpClient 属性未通过 DI 传递

    我正在开发一个 ASP NET Core 5 0 项目 该项目有一个访问 API 的服务 根据下面的代码 我希望提供给 ToornamentService 构造函数的 HttpClient 包含声明的 BaseAddress 和 API 密