由于 WebClient 在 .NET 6 中已弃用,因此我想使用 WebClient 将以下代码转换为使用 HttpClient 调用 REST Web API 的等效代码:
using WebClient client = new();
client.Encoding = Encoding.UTF8;
client.Headers.Set(HttpRequestHeader.ContentType, "application/json");
client.Headers.Add("user_key", tokens[0]);
client.Headers.Add("Session_key", tokens[1]);
string json = JsonSerializer.Serialize(sms);
string serverResponse = client.UploadString(_baseUrl + "sms", "POST", json);
Run Code Online (Sandbox Code Playgroud)
目前,我实施了以下解决方案:
HttpClient httpClient = _httpClientFactory.CreateClient();
HttpRequestMessage request = new(HttpMethod.Post, _baseUrl + "sms");
request.Headers.Add("user_key", tokens[0]);
request.Headers.Add("Session_key", tokens[1]);
string json = JsonSerializer.Serialize(sms);
request.Content = new StringContent(json, Encoding.UTF8, MediaTypeNames.Application.Json);
using HttpResponseMessage response = await httpClient.SendAsync(request);
response.EnsureSuccessStatusCode();
Run Code Online (Sandbox Code Playgroud)
我认为上述解决方案是替换原始代码的最干净、最有效的方法。有专家可以证实一下吗?