我正试着用来自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相关问答推荐

DataTable 不包含 AsEnumerable 的定义

Ef core:执行 MaxAsync 时序列不包含任何元素

ASP.NET Core 2.0 Razor 与 Angular/React/等

Httpclient 该实例已经启动了一个或多个请求.只能在发送第一个请求之前修改属性

我可以在 .net 核心中使用 Entity Framework 6(非核心)吗?

Azure Functions 中的 DI

Automapper - 映射器已初始化错误

Visual Studio 2017 错误:无法启动程序,当前状态下的操作不合法

Visual Studio 不要打开新的浏览器实例

InvalidOperationException:在程序集上找不到“UserSecretsIdAttribute”

在 ASP.NET Core 中未经授权时重定向到登录

如何在 ASP.NET MVC 中启用跨源请求

ASP.NET Core Web API 身份验证

IIS 10 上的 ASP.NET Core 404 错误

如何在 Visual Studio 2015 中保存时编译 .sass 文件

在 ASP.NET Web API 2 中禁用 *all* 异常处理(为我自己腾出空间)?

.NET Framework 4.0 中的 TLS 1.2

在 C# 中将 IHtmlContent/TagBuilder 转换为字符串

找不到路径的一部分... bin\roslyn\csc.exe

将 Grunt、Bower、Gulp、NPM 与 Visual Studio 2015 一起用于 ASP.NET 4.5 项目