如何翻译 HttpClient 中的 Webrequest 方法

How can I translate Webrequest method in HttpClient

我有这个用于恢复 Http 代码和描述的代码,但是 Visual Studio 说 WebRequest 已经过时,我必须使用 HttpClient。我不熟悉 HttpClient 你能帮帮我吗?

IConfigurationRoot config;

myRequest = WebRequest.CreateHttp($"{config["BASE_URL"]}{link}");
myResponse = (HttpWebResponse)myRequest.GetResponse();
Check_load($"{config["BASE_URL"]}{link}");

var code = ((int)myResponse.StatusCode);  
var desc = myResponse.StatusDescription;

HttpClient的使用非常简单。见下方代码

        try
        {
            using (HttpClient client = new HttpClient())
            {
                var res = await client.GetAsync(url);
                var response = await res.Content.ReadAsStringAsync();
                var data = JsonConvert.DeserializeObject<MyObject>(response);
                // use the new data retreived...
            }
        }
        catch (Exception)
        {
            responseMessage = new BadRequestObjectResult("error retreiving data");
        }

假设您的数据以 JSON 格式发送

var client = new HttpClient();
var response = await client.GetAsync(url);
var statusCode = response.StatusCode;
var content = response.Content;
if(statusCode != HttpStatusCode.OK && statusCode != HttpStatusCode.Created){
   //return something, error, description
}

更新
从评论 @Charlieface 指出我没有将 HttpClient 声明为静态字段的地方。
为了避免每次调用时都创建 HttpClient 的实例,完整的工作环境如下.

public class HttpHelper{
   private static HttpClent client = new HttpClient();

   public static async Task<string> GetAsync(string url)
   {
      var response = await client.GetAsync(url);
      var statusCode = response.StatusCode;
      var content = response.Content;
      if(statusCode != HttpStatusCode.OK && statusCode != HttpStatusCode.Created)
      {
         //return something, error, description
         //return $"error with status code: {statusCode}";
      }
      else
      {
         //return "success";
      }
   }
}