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

.NET Core中如何调用存储在appsettings.json中的API地址

.NET Core 中存储调用API地址的配置方案

1. 配置存储正确性确认

你给出的appsettings.json存储方式完全合法,写法正确:

"MyApi": {
    "API": "http://example.com"
}

注意该节点需放在appsettings.json的根层级大括号内部,不要嵌套到其他已有配置节点下。

2. 访问配置的常用方式

方式1:通过配置绑定+IOptions模式访问(推荐)

  • 首先创建对应配置的实体类
public class MyApiSettings
{
    public string API { get; set; }
}
  • 在Program.cs中注册配置绑定
// .NET 6+ 顶级语句写法
builder.Services.Configure<MyApiSettings>(builder.Configuration.GetSection("MyApi"));
  • 在需要使用的控制器/服务中通过构造函数注入使用
public class YourService
{
    private readonly MyApiSettings _apiSettings;
    public YourService(IOptions<MyApiSettings> apiOptions)
    {
        _apiSettings = apiOptions.Value;
    }

    public void TestCall()
    {
        var apiAddress = _apiSettings.API; // 即可拿到配置的API地址
    }
}

方式2:直接绑定到HttpClient注册(配合IHttpClientFactory最佳实践)

不建议直接new HttpClient,容易引发端口耗尽问题,推荐用官方推荐的IHttpClientFactory方案,注册时直接读取配置赋值:

// Program.cs 中注册
builder.Services.AddHttpClient("MyApiClient", client =>
{
    client.BaseAddress = new Uri(builder.Configuration["MyApi:API"]);
});

使用时注入IHttpClientFactory即可直接拿到预配置好基地址的客户端:

public class YourService
{
    private readonly HttpClient _apiClient;
    public YourService(IHttpClientFactory httpClientFactory)
    {
        _apiClient = httpClientFactory.CreateClient("MyApiClient");
    }

    public async Task<string> CallApiAsync()
    {
        // 直接基于配置的基地址发起请求即可
        return await _apiClient.GetStringAsync("/some/endpoint");
    }
}

额外注意

如果存储的是敏感类配置(比如接口密钥、账号密码),生产环境不要明文放在appsettings.json中,建议配合ASP.NET Core密钥管理器、环境变量、云配置中心等加密存储方案使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:54:01