HttpClientFactory 没有为请求添加参数的选项,而 HttpClient 有该选项,对吗?
我的目标 API 有问题;它需要两个参数,我需要弄清楚如何向我的请求添加两个参数。有人可以解释一下我如何使用 HttpClientFactory 进行该调用吗?
我要调用的目标 API 的签名如下所示:
public string Authentication(string UN, string AP)
希望有人可以告诉我如何编码。
HttpclientFactory
不能替代 HttpClient
,工厂是创建 HttpClient 实例的一种方法。
最后你仍然可以使用HttpClient
,微软的例子:
using System.Net.Http.Json;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using Shared;
namespace BasicHttp.Example;
public sealed class TodoService(
IHttpClientFactory httpClientFactory,
ILogger<TodoService> logger)
{
public async Task<Todo[]> GetUserTodosAsync(int userId)
{
// Create the client
using HttpClient client = httpClientFactory.CreateClient();
try
{
// Make HTTP GET request
// Parse JSON response deserialize into Todo types
Todo[]? todos = await client.GetFromJsonAsync<Todo[]>(
$"https://jsonplaceholder.typicode.com/todos?userId={userId}",
new JsonSerializerOptions(JsonSerializerDefaults.Web));
return todos ?? [];
}
catch (Exception ex)
{
logger.LogError("Error getting something fun to say: {Error}", ex);
}
return [];
}
}