【问题标题】:How to add parameter in the web API while calling in C#在 C# 中调用时如何在 Web API 中添加参数
【发布时间】:2021-12-30 12:07:23
【问题描述】:

我在下面给出了示例代码,我正在调用 Web API,但我很难在控制台应用程序中传递参数。

C#代码:

HttpClient client = new HttpClient();
var responseTask = client.GetAsync("<web api name>");
responseTask.Wait();

HttpRequestMessage rm = new HttpRequestMessage();
var headers = rm.Headers;

client.DefaultRequestHeaders.Add("client_id", "1234xv");
client.DefaultRequestHeaders.Add("client_secret", "7dfdfsd");

if (responseTask.IsCompleted)
{
    var result = responseTask.Result;

    if (result.IsSuccessStatusCode)
    {
        var messageTask = result.Content.ReadAsStringAsync();
        messageTask.Wait();                    
        Console.WriteLine("Message from Web API:" + messageTask.Result);                  
        Console.ReadLine();
    }
}

【问题讨论】:

  • 尝试使用 (var httpClient = new HttpClient())
  • 您应该使用 await 进行异步调用,而不是 .ResultWait()
  • 在将参数添加到 HTTP 请求标头之前,您过早地进行 GET 调用。 Web API 是否需要标头或查询字符串或正文中的参数?

标签: c#


【解决方案1】:

您很早就进行了 GET 调用,甚至在将参数添加到 HTTP 标头之前。您需要添加参数,然后调用 GetAsync()。 见下面修改后的代码,

using (HttpClient client = new HttpClient())
{
   client.DefaultRequestHeaders.Add("client_id", "1234xv");
   client.DefaultRequestHeaders.Add("client_secret", "7dfdfsd");

   var responseTask = client.GetAsync("http://your api url");
   responseTask.Wait();
   if (responseTask.IsCompleted)
   {
      var result = responseTask.Result;
      if (result.IsSuccessStatusCode)
      {
          var messageTask = result.Content.ReadAsStringAsync();
          messageTask.Wait();
          Console.WriteLine("Message from Web API:" + messageTask.Result);
          Console.ReadLine();
      }
   }
}

【讨论】:

  • 谢谢! @Anand Sowmithiran
猜你喜欢
  • 2017-05-20
  • 2019-11-17
  • 2014-12-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-16
  • 1970-01-01
  • 2020-10-02
  • 1970-01-01
相关资源
最近更新 更多