栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何将对象传递给HttpClient.PostAsync并序列化为JSON正文?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何将对象传递给HttpClient.PostAsync并序列化为JSON正文?

您问题的直接答案是:否。

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
像您在此处那样调用属性可能会产生一些不良后果,例如死锁,因此您需要注意这一点。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/449224.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号