从REST API'S发送和获取响应的最佳方式

本文关键字:获取 响应 方式 最佳 API REST | 更新日期: 2023-09-27 18:01:36

我正在使用HttpClient与REST API进行通信,并获得响应,如下所示:

public static string  PostToAPI( string value)
 {
   var payload = new APIModel
     {
        CommandText = value
     };
  var stringPayload = JsonConvert.SerializeObject(payload);
  var httpContent = new StringContent(stringPayload,Encoding.UTF8,"application/json");
  System.Net.Http.HttpClient client = new System.Net.Http.HttpClient();
  HttpResponseMessage message=client.PostAsync("https://testAPI/test",httpContent).Result              if (message.IsSuccessStatusCode)
    {
          string result = message.Content.ReadAsStringAsync().Result;
           return result;
     }
      return string.Empty;
  }

有其他的替代或最好的方法吗?

从REST API'S发送和获取响应的最佳方式

你总是可以使用HttpWebRequest和HttpWebResponse。试试下面的

        try
        {
            var webAddr = "URL";
            var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAddr);
            httpWebRequest.ContentType = "application";
            httpWebRequest.Method = "POST";
            string str = "request string";
            httpWebRequest.Headers["Authorization"] = "";
            httpWebRequest.Headers["TenantId"] = "";
            httpWebRequest.Headers["Client-Type"] = "";
            httpWebRequest.Headers["Protocol"] = "";
            using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
            {                    
                Console.WriteLine(str);
                streamWriter.Write(str);              
                streamWriter.Flush();
                streamWriter.Close();
            }
            var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                var result = streamReader.ReadToEnd();
                Console.WriteLine("result=" + result);
            }
        }
        catch (WebException ex)
        {
            Console.WriteLine(ex.Message);
        }