【问题标题】:HttpClient not supporting PostAsJsonAsync method & dll in C#HttpClient 不支持 C# 中的 PostAsJsonAsync 方法和 dll
【发布时间】:2020-08-03 11:53:04
【问题描述】:

我正在尝试在我的 Windows App .Net 4.6.1 中调用 API

HttpClient client = new HttpClient();
            Uri baseAddress = new Uri("https://smsmisr.com/");
            client.BaseAddress = baseAddress;
            var sendtime = DateTime.Now.ToString("yyyy-MM-dd-HH-mm");

            HttpResponseMessage response = client.PostAsJsonAsync(
            "api/webapi/?" +
            "username=XXXxx" +
            "&password=XXXXXX" +
            "&language= 3 Or 2 Or 1" +
            "&sender=Your Sender " +
            "&mobile=2012XXXXXX, 2011XXXX" +
            "&message=Encoded Message" +
            "&DelayUntil=" + sendtime
            ).Result;

在编写代码时出现错误

错误 CS1501 方法“PostAsJsonAsync”没有重载需要 1 个参数

搜索后我添加了这个参考:

using System.Net.Http;
using System.Net.Http.Headers;
using System.Net.Http.Formatting.dll;

但出现此错误: 错误 CS0234 命名空间“System.Net.Http.Formatting”中不存在类型或命名空间名称“dll”(您是否缺少程序集引用?)

【问题讨论】:

  • 永远不需要dll部分
  • 我删除了它,但仍然出现此错误 错误 CS1501 方法 'PostAsJsonAsync' 没有重载需要 1 个参数
  • using System.Net.Http.Formatting
  • 你为什么打电话给PostAsJsonAsync 没有,嗯,发布任何JSON?那不是 JSON - 它只是查询字符串参数。不涉及 JSON。
  • @BassemKamalM 你能告诉我们你为什么要特别地调用那个方法吗?

标签: c# api


【解决方案1】:

错误很明显。 Here 你可以看到该方法的所有重载是什么。您可能想要传递 uri 和有效负载对象,例如:

HttpResponseMessage response = client.PostAsJsonAsync("/api/webapi", [your object instance here]);

目前,您传递的是单个字符串,因此出现错误。

还有需要更正的using语句:

using System.Net.Http.Formatting;

【讨论】:

  • 你也可以添加他得到的另一个错误的答案(他有using System.Net.Http.Formatting.dll,但应该是using System.Net.Http.Formatting
  • 我绑定了,响应消息是:{StatusCode:500,ReasonPhrase:'内部服务器错误',版本:1.1,内容:System.Net.Http.StreamContent,标题:{日期:周一, 2020 年 8 月 3 日 08:00:39 GMT 服务器:Microsoft-IIS/10.0 内容长度:75 内容类型:文本/html }}
  • 这意味着您正在向服务器发送数据,服务器可能不知道如何互操作并且正在崩溃。
【解决方案2】:

您是否实现了接受一个参数的 PostAsJsonAsync 方法?

当用户没有实现继承类所需的方法时会发生该错误

【讨论】:

  • 该错误在实现时出现——他只是没有向所述方法发送正确数量的参数。这个答案是错误的。
猜你喜欢
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多