小编Fab*_*ius的帖子

如何在 .NET 6 中用 HttpClient 替换过时的 WebClient

由于 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)

我认为上述解决方案是替换原始代码的最干净、最有效的方法。有专家可以证实一下吗?

c# api dotnet-httpclient .net-6.0

13
推荐指数
2
解决办法
3万
查看次数

标签 统计

.net-6.0 ×1

api ×1

c# ×1

dotnet-httpclient ×1