.NET 6控制台应用中如何找到IHttpClientBuilder?
环境
- Visual Studio 2022
- .NET 6 控制台应用
问题描述
原本有一个Web应用,现在正将其转换为使用HttpClient的控制台应用。在Web应用中可以从WebApplicationBuilder获取相关构建器,已添加Microsoft.Extensions.Hosting包,并编写了如下代码:
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; var host = Host.CreateDefaultBuilder(args); host.ConfigureServices(services => { services.AddHttpClient(); });
但找不到包含所需扩展方法的IHttpClientBuilder,尝试更换CreateDefaultBuilder的替代方法也未发现与IHttpClientBuilder的关联。请问是缺少其他包,还是需要重新配置上述代码?
解决方案
你缺少了Microsoft.Extensions.Http NuGet包。AddHttpClient扩展方法以及IHttpClientBuilder类型都定义在这个包中,而非Microsoft.Extensions.Hosting包。
解决步骤:
- 在Visual Studio中右键项目,选择「管理NuGet程序包」
- 搜索
Microsoft.Extensions.Http并完成安装 - 重新编译项目后,
services.AddHttpClient()就会正常返回IHttpClientBuilder,你可以继续用它配置HttpClient的超时、基础地址等参数,示例如下:
host.ConfigureServices(services => { services.AddHttpClient("CustomClient") .ConfigureHttpClient(client => { client.BaseAddress = new Uri("https://api.example.com/"); client.Timeout = TimeSpan.FromSeconds(30); }); });
你的原有代码结构没有问题,安装对应包后即可正常使用。
内容的提问来源于stack exchange,提问作者KeithViking
相关产品推荐
相关产品推荐

