You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

注入预配置BaseAddress的HttpClient时BaseAddress为null问题求解

问题原因

你预先手动注册了IAuthenticationExchangeClient到AuthenticationExchangeClient的瞬态服务,该注册并未关联你后续通过AddHttpClient配置的HttpClient实例。当你注入IAuthenticationExchangeClient接口时,依赖注入容器会优先使用你最早声明的瞬态服务构造实例,此时注入的是无配置的默认HttpClient,因此BaseAddress为null。

解决方案

删除你手动添加的services.AddTransient<IAuthenticationExchangeClient, AuthenticationExchangeClient>();这行代码,改用AddHttpClient的接口绑定重载完成注册,修改后代码如下:

private static void ConfigureServices(HostBuilderContext hbc, IServiceCollection services)
{
    services.AddHttpClient<IAuthenticationExchangeClient, AuthenticationExchangeClient>(c => 
        c.BaseAddress = new Uri("http://api.mendeley.com"));
}

AddHttpClient的该重载会自动完成接口到实现类的服务注册,同时将配置好BaseAddress的HttpClient注入到实现类的构造函数中,后续直接注入IAuthenticationExchangeClient即可正常使用。

内容的提问来源于stack exchange,提问作者ScottishTapWater

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 13:15:04