您问题的直接答案是:否。
PostAsync方法的签名如下:
公共任务PostAsync(Uri requestUri,HttpContent内容)
因此,尽管您可以将传递
object给,
PostAsync但它必须是类型,
HttpContent并且您的匿名类型不符合该条件。
但是,有一些方法可以完成您想要完成的工作。首先,您需要将匿名类型序列化为JSON,最常见的工具是Json.NET。并且此代码非常简单:
var myContent = JsonConvert.SerializeObject(data);
接下来,您将需要构造一个内容对象来发送此数据,我将使用一个
ByteArrayContent对象,但是如果需要,您可以使用或创建其他类型。
var buffer = System.Text.Encoding.UTF8.GetBytes(myContent);var byteContent = new ByteArrayContent(buffer);
接下来,您想要设置内容类型以使API知道这是JSON。
byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");然后,您可以使用表格内容发送与上一个示例非常相似的请求:
var result = client.PostAsync("", byteContent).Result附带说明一下,
.Result像您在此处那样调用属性可能会产生一些不良后果,例如死锁,因此您需要注意这一点。



