我有一个用.NET创建的WEB API,我有一些POST和GET方法,我想在另一个C# Windows窗体项目中使用。GET方法工作正常,但由于某种原因,我无法让POST方法工作,因为它没有传递正确的变量。
我有一个构造函数来设置默认的url
client.BaseAddress = new Uri("http://localhost:7101/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
所以我有这个post方法,API得到调用,但是两个变量都等于0(在API中),而在这个方法中,它们具有不同的值(正确的值)。
下面是API:
[HttpPost]
[Route("UpdatePercentage")]
public void UpdatePercentage(int playerid, int percentage)
{
...
}
下面是我如何使用它:
var userid = 2;
var percentageText = 21;
var response = await client.PostAsJsonAsync("UpdatePercentage",
(userid, percentageText));
1条答案
按热度按时间mbskvtky1#
你必须解决两件事:
因此,请按如下方式修复代码:
或
假设您有以下变量:
然后:
(x, y)
作为参数传递,它将被json序列化为{"Item1":1,"Item2":"something"}
,这不是API所期望的。new {x, y}
作为参数传递,它将被json序列化为API所期望的{"x":1,"y":"something"}
。