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 传递 的相关文章

  • 当我在 C 中将 long int 赋值给 int 时会发生什么?

    在最近的作业中 我被告知要使用long变量来存储结果 因为它可能是一个很大的数字 我决定在我的系统 英特尔酷睿 i5 64 位 Windows 7 gnu gcc 编译器 上检查这对我来说真的很重要 并发现以下代码 printf sizeo
  • Qt:更改 Mac OS X 上的应用程序 QMenuBar 内容

    我的应用程序对多个 页面 使用 QTabWidget 其中顶级菜单根据用户所在的页面而变化 我的问题是 尝试重新创建菜单栏的内容会导致严重的显示问题 它在除 Mac OS X 之外的所有平台上按预期使用第一种和第三种样式 尚未测试第二种 但
  • C++ - 错误 C3646:未知的覆盖说明符

    我修改了我的项目 编译后弹出一些奇怪的错误 ifndef BART RAY TRACER MESH H define BART RAY TRACER MESH H include
  • 获取枚举实例的名称[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 假设我有这个枚举 public enum MyEnum ValueOne 1 ValueTwo 2 ValueThree 3 然后
  • 是否可以将 long long 返回值分配给 int64_t 而不会丢失 64 位机器中的精度?

    我已经实现了以下代码 include
  • tmpnam 的 C/C++ 线程安全性?

    我需要使用tmpnamC 中的函数 但我需要了解它的线程安全性 也就是说 如果我有多个线程 每个线程都需要为临时文件获取不同的名称 我是否可以保证每个线程都会收到具有不同名称的文件 tmpnam 仅保证该文件当时不存在 但它可能会在您自己创
  • 计算序列而无法存储值?

    问题陈述 here http www spoj com problems EC SER 令 S 为无限整数序列 S0 a S1 b Si Si 2 Si 1 对于所有 i gt 2 你有两个整数 a 和 b 您必须回答有关序列中第 n 个元
  • 如果将其名称作为参数传递,如何在方法中打开表单

    我正在尝试创建一个标准方法来根据传递给它的参数打开表单 基本上 要完成此任务 using Quotes newQte new Quotes newQte ShowDialog 通过替换 Quotes with a passed parame
  • MPI_Gather 分段错误

    我有这个并行高斯消除代码 调用以下任一方法时会发生分段错误MPI Gather函数调用 我知道如果没有为任一缓冲区正确分配内存 可能会出现此类错误 但我看不出内存管理代码有什么问题 有人可以帮忙吗 Thanks Notes 该程序从一个 t
  • 如何在提升日期时间中忽略周末和节假日?

    第一个问题 我有一个提升日期对象 如下所示 boost gregorian date 今天 2012 02 13 我从今天减去日期部分 如下所示 今天 月 240 或今天 天 X 等 我想在进行上述减法时是否有办法排除周末和特殊假期 我的意
  • 如何防止打印屏幕

    我有一个要求 我正在开发的应用程序阻止用户轻松捕获屏幕内容 我已经表示 没有可行的方法可以完全防止这种情况发生 但我正在寻找方法来为这一过程引入一些障碍 我正在使用 C NET 2 0 和 WinForms 你不能 您能做的最好的事情就是在
  • 使用 C 通过引用传递数组

    是的 我已经阅读了这个问题和答案 在 C 中通过引用传递数组 https stackoverflow com questions 1106957 pass array by reference in c 我有一个类似的问题 并从该问题中实现
  • 在.NET MVC中,有没有一种简单的方法来检查我是否在主页上?

    如果用户从主页登录 我需要采取特定的操作 在我的 LogOnModel 中 我有一个隐藏字段 Html Hidden returnUrl Request Url AbsoluteUri 在我的控制器中 我需要检查该值是否是主页 在下面的示例
  • 传输数据的 Symbol.WPAN.Bluetooth 示例

    我正在尝试将 EMDK 附带的 Symbol WPAN Bluetooth 用于 Symbol 设备 有人碰巧有一个传输数据的工作示例吗 Symbol 的示例只是将设备配对 他们显然认为在个人局域网示例中并不真正需要传输数据 不管怎样 我知
  • 使用 Github Actions 进行部署

    我在用Github作为我的源代码控制 并使用Github 操作作为我的 CI CD 解决方案 我在某处有一个专用的 Windows Server 它接受发表我的仓库的版本 我有一个 Github Action 它可以构建 测试 发布和部署
  • C# 从字符串变量中获取类型并在泛型方法中使用它

    我希望能够通过某种方式 即从数据库 获取我收到的字符串值的实际类型 这样我就可以在通用方法中使用该类型 例如DoSomething
  • timeval_subtract 解释

    使用 timeval subtract 函数来查找两个 struct timeval 类型之间经过的时间 有人可以解释一下用于 通过更新 y 执行后续减法的进位 和其他部分的目的和逐步数学吗 我了解该函数的目的以及如何在程序中实现它 但我想
  • 为什么删除void*是UB而不是编译错误?

    为什么要通过删除对象void 是未定义的行为 而不是编译错误 void foo void p delete p 这段代码编译并生成代码 尽管有关于 gcc 和 clang 的警告 令人惊讶的是 ICC 没有给出警告 2 5 warning
  • (int *)0 是空指针吗?

    这可以被认为是一个扩展这个问题 https stackoverflow com q 16563114 912144 我只对 C 感兴趣 但添加 C 来完成扩展 C11 标准 6 3 2 3 3 规定 值为 0 的整数常量表达式 或此类表达式
  • 复杂对象上的 GroupBy(例如 List

    Using GroupBy and Count gt 1我试图在列表中查找我的类的重复实例 该类看起来像这样 public class SampleObject public string Id public IEnumerable

随机推荐

  • 如何一次性从 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 密