在单例中使用_httpClientFactory.CreateClient是否需配置空services.AddHttpClient?
问题解答
答案是肯定的——你必须在项目启动时调用services.AddHttpClient();,不能省略这一步,原因如下:
services.AddHttpClient()是ASP.NET Core中注册IHttpClientFactory及其配套服务的核心入口,没这行代码的话,依赖注入容器里根本找不到IHttpClientFactory的实现,你在单例里注入它并调用_httpClientFactory.CreateClient()时直接就会报错,提示服务未注册。- 你调用无命名的
CreateClient(),本质是获取工厂默认配置的HttpClient实例,AddHttpClient()会自动注册这个默认的客户端模板(哪怕你没加任何额外配置),确保你能拿到一个可用的基础HttpClient对象,之后你再在使用时修改它的BaseAddress、请求头这些配置都没问题。 - 哪怕你打算完全手动配置HttpClient的所有参数,也得先让工厂能创建出最基础的实例,这一步的前提就是启动时完成
AddHttpClient()的注册。
内容的提问来源于stack exchange,提问作者steb
相关产品推荐
相关产品推荐

