C# 如何将布尔体发送到HttpClient.PutAsync或HttpClient.PostAsync?

C# 如何将布尔体发送到HttpClient.PutAsync或HttpClient.PostAsync?,c#,.net,asp.net-core,C#,.net,Asp.net Core,我试图调用一个PUT服务,该服务接受一个布尔值作为一个实体。当我从Javascript或Swagger测试该服务时,该服务可以工作,但它拒绝了我从.NET发出的请求 这很有效(Javascript): fetch(URL{ 标题:{ “内容类型”:“应用程序/json”, 'Authorization':'bearer${TOKEN}` }, 方法:'放', 身体:是的, }); 这不起作用(.NET): 专用静态异步任务运行测试(bool b) { 使用(var client=new Htt

我试图调用一个
PUT
服务,该服务接受一个布尔值作为一个实体。当我从Javascript或Swagger测试该服务时,该服务可以工作,但它拒绝了我从.NET发出的请求

这很有效(Javascript):

fetch(URL{
标题:{
“内容类型”:“应用程序/json”,
'Authorization':'bearer${TOKEN}`
},
方法:'放',
身体:是的,
});
这不起作用(.NET):

专用静态异步任务运行测试(bool b)
{
使用(var client=new HttpClient())
{
client.DefaultRequestHeaders.Add(“Authorization”,$“Bearer{TOKEN}”);
var content=newstringcontent(b.ToString(),Encoding.UTF8,“application/json”);
HttpResponseMessage结果=wait client.PutAsync(URL,内容);
返回result.ToString();
}
}
服务器正在为我的.NET请求返回
400
。但正如我所说的,当我使用
fetch
或其他方式进行测试时,它会起作用。所以我假设我在.NET中做了一些错误的事情


如何将布尔体传递给
HttpClient.PutAsync

正如@Nkosi在评论中建议的那样,我需要将布尔体序列化为JSON,而不是只调用
ToString

问题似乎是
ToString
生成的大写值为
True
False
,而不是预期的小写值为
True
False

因此,我添加了一个参考,并将代码更改为:

专用静态异步任务运行测试(bool b)
{
使用(var client=new HttpClient())
{
client.DefaultRequestHeaders.Add(“Authorization”,$“Bearer{TOKEN}”);
var content=newstringcontent(JsonConvert.SerializeObject(b),Encoding.UTF8,“application/json”);
HttpResponseMessage结果=wait client.PutAsync(URL,内容);
返回result.ToString();
}
}

这是可行的。

尝试将布尔值序列化为JSON,而不是仅仅调用
ToString
Yep我将
b.ToString()
替换为
JsonConvert.SerializeObject(b)
(),它就可以工作了。谢谢