Http post 使用HttpClient.PostAsJsonAsync发布标量数据类型

Http post 使用HttpClient.PostAsJsonAsync发布标量数据类型,http-post,using,dotnet-httpclient,Http Post,Using,Dotnet Httpclient,我正在使用HttpClient调用ASP.NETWebAPI并成功调用操作。此外,我还可以将自定义对象发布到操作中 现在我面临的问题是,无法发布整型、字符串等标量数据类型 下面是调用操作的控制器和应用程序代码 //调用 [Test] public void RemoveCategory() { HttpClient client = new HttpClient(); HttpRequestMessage requ

我正在使用HttpClient调用ASP.NETWebAPI并成功调用操作。此外,我还可以将自定义对象发布到操作中

现在我面临的问题是,无法发布整型、字符串等标量数据类型

下面是调用操作的控制器和应用程序代码

//调用

[Test]
        public void RemoveCategory()
        {
            HttpClient client = new HttpClient();

            HttpRequestMessage request = new HttpRequestMessage();

            HttpResponseMessage response = client.PostAsJsonAsync<string>("http://localhost:49931/api/Supplier/RemoveCategory/", "9").Result;

            Console.WriteLine(response.Content.ReadAsStringAsync().Result);
        }
当我在Northwind数据库中发布表示“Category”表的custome对象时,所有东西都正常工作,但我无法发布整型和字符串等标量数据

当我是post字符串数据类型时,我得到以下异常

{“消息”:“未找到与请求URI“”匹配的HTTP资源。”,“消息详细信息”:“未在控制器“供应商”上找到与请求匹配的操作。”}


有人可以指导我吗?

您必须将CategoryID参数标记为[FromBody]:

[HttpPost]
public HttpResponseMessage RemoveCategory([FromBody] string CategoryID)
{ ... }

默认情况下,字符串等简单类型将从URI进行模型绑定。

您必须将CategoryID参数标记为[FromBody]:

[HttpPost]
public HttpResponseMessage RemoveCategory([FromBody] string CategoryID)
{ ... }
默认情况下,字符串等简单类型将从URI进行模型绑定