C# 在ASP.NET MVC中使用HttpClientFactory
我有一个ASP.NET MVC应用程序,它使用HttpClient调用ASP.NET Web API REST服务C# 在ASP.NET MVC中使用HttpClientFactory,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个ASP.NET MVC应用程序,它使用HttpClient调用ASP.NET Web API REST服务 private static HttpClient client = new HttpClient(); public async Task DumpWarehouseDataIntoFile(Warehouse myData, string path, string filename) { try { //Hosted web API REST
private static HttpClient client = new HttpClient();
public async Task DumpWarehouseDataIntoFile(Warehouse myData, string path, string filename)
{
try
{
//Hosted web API REST Service base url
string Baseurl = "http://XXX.XXX.XX.X:YYYY/";
//using (var client = new HttpClient()) --> I have declared client as an static variable
//{
//Passing service base url
client.BaseAddress = new Uri(Baseurl);
client.DefaultRequestHeaders.Clear();
//Define request data format
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// Serialize parameter to pass to the asp web api rest service
string jsonParam = Newtonsoft.JsonConvert.SerializeObject(myData);
//Sending request to find web api REST service resource using HttpClient
var httpContent = new StringContent(jsonParam, Encoding.UTF8, "application/json");
HttpResponseMessage Res = await client.PostAsync("api/Warehouse/DumpIntoFile", httpContent);
//Checking the response is successful or not which is sent using HttpClient
if (Res.IsSuccessStatusCode)
{
// Some other sftuff here
}
//}
}
catch (Exception ex)
{
// Do some stuff here
} // End Try
} // End DumpWarehouseDataIntoFile method
现在我试图安装nuget软件包,以便使用HttpClientFactory而不是直接使用HttpClient,但在安装它时出现了一个错误。这似乎是不相容的。我的ASP.NET MVC项目以标准ASP.NET Framework 4.5(非核心)为目标 下面是安装nuget软件包时出现的错误(很抱歉是西班牙语)。它说: 正在安装“Microsoft.Extensions.Http 5.0.0”。 “Microsoft.Extensions.Http 5.0.0”已正确安装。添加 “Microsoft.Extensions.Http 5.0.0”到Application.InspeccionesModule。。。 安装错误。正在回滚。。。无法安装软件包 “Microsoft.Extensions.Http 5.0.0”。您正在尝试安装此 将“.NETFramework,Version=v4.5”作为 目标,但包不包含程序集引用或 与该框架兼容的内容文件
如何安装HttpClientFactory软件包?我如何配置基址url、请求头等,然后在HttpClientFactory中以与经典HttpClient相同的方式调用PostAsync?非常感谢您提供的任何代码片段。“但我在安装时遇到了一个错误”,我们看不到您的屏幕,因此,如果您希望我们能够帮助您,请提出您的问题并粘贴准确的错误消息。@Camiloteriento我已经发布了错误,尽管这是西班牙语的。嗯,如果查看共享链接中的Dependencies选项卡:-它表示支持.NET Standard 2.0或.NET Framework 4.6.1-错误消息指出您的目标是.NET Framework 4.5(它非常旧,不受支持)。我强烈建议您更新到.NET Framework 4。8@CamiloTerevinto好的,我可以假设在Net4.5中不可能使用HttpClientFactory。这不是一个假设,而是一个定义的约束:)“但是我在安装它时出错了”,我们看不到你的屏幕,因此,如果您希望我们能够帮助您,请提出您的问题并粘贴准确的错误消息。@CamiloTerevinto我已经发布了错误消息,尽管这是西班牙语的。嗯,如果查看共享链接中的Dependencies选项卡:-它表示支持.NET Standard 2.0或.NET Framework 4.6.1-错误消息指出您的目标是.NET Framework 4.5(它非常旧,不受支持)。我强烈建议您更新到.NET Framework 4。8@CamiloTerevinto好的,我可以假设在Net4.5中不可能使用HttpClientFactory。这不是一个假设,而是一个定义的约束:)