我正试着用来自Web API的HttpClient发布一个JsonObject.我不太确定如何进行这项工作,在示例代码中也找不到很多东西.

以下是我目前掌握的情况:

var myObject = (dynamic)new JsonObject();
myObject.Data = "some data";
myObject.Data2 = "some more data";

HttpClient httpClient = new HttpClient("myurl");
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

HttpResponseMessage response = httpClient.Post("", ???);

我想我需要把我的JsonObject投成StreamContent,但我在这一步上被挂断了.

推荐答案

有了新版本的HttpClient而没有WebApi软件包,它将是:

var content = new StringContent(jsonObject.ToString(), Encoding.UTF8, "application/json");
var result = client.PostAsync(url, content).Result;

或者如果你想要async:

var result = await client.PostAsync(url, content);

Asp.net相关问答推荐

ASP.NET控制器上的默认接受媒体类型

Thread.CurrentPrincipal 错误地声称是匿名的

在 Sessions 中存储自定义对象

asp.net dropdownlist - 在 db 值之前添加空行

ASP.NET:获取自 1970 年 1 月 1 日以来的毫秒数

在程序集中找不到上下文类型

IIS 6/ASP.NET Windows 身份验证 list ?

无法加载文件或程序集 'System.Web.Mvc,版本 = 3.0.0.0,Elmah.MVC 问题

上传时验证大文件

IIS 中的 existingResponse="PassThrough" 是什么意思?

带有文件名的 ASP.net MVC4 WebApi 路由

Eval()、XPath() 和 Bind() 等数据绑定方法只能在数据绑定控件的上下文中使用

使下拉列表项不可 Select

DBContext.Entry 有什么作用?

发布网站项目时临时路径太长

如何获取部署在 Azure 网站上的 ASP.NET 5 应用程序的错误详细信息?

如何使用 ConfigurationManager.AppSettings

在.net的内存数据库中

如何加密 web.config 中的一项

获取 Application_Start 中的当前应用程序物理路径