240

我正在尝试使用HttpContent

HttpContent myContent = HttpContent.Create(SOME_JSON);

...但我没有找到定义它的 DLL 的运气。

首先,我尝试添加对Microsoft.Httpas 的引用System.Net,但列表中都没有。我也尝试添加对的引用,System.Net.HttpHttpContent该类不可用。

那么,谁能告诉我在哪里可以找到HttpContent课程?

4

6 回答 6

439

就用...

var stringContent = new StringContent(jObject.ToString());
var response = await httpClient.PostAsync("http://www.sample.com/write", stringContent);

或者,

var stringContent = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync("http://www.sample.com/write", stringContent);
于 2014-06-29T09:11:35.880 回答
167

将 6footunder 的评论转化为答案HttpContent是抽象的,因此您需要使用其中一个派生类:

在此处输入图像描述

于 2014-02-19T11:38:50.890 回答
111

对于 JSON 帖子:

var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync("http://www.sample.com/write", stringContent);

非 JSON:

var stringContent = new FormUrlEncodedContent(new[]
{
    new KeyValuePair<string, string>("field1", "value1"),
    new KeyValuePair<string, string>("field2", "value2"),
});
var response = await httpClient.PostAsync("http://www.sample.com/write", stringContent);

https://blog.pedrofelix.org/2012/01/16/the-new-system-net-http-classes-message-content/

于 2017-12-20T19:49:07.593 回答
6

虽然 HttpContent 的最终版本和整个 System.Net.Http 命名空间将随 .NET 4.5 一起提供,但您可以通过添加来自 NuGet的Microsoft.Net.Http包来使用 .NET 4 版本

于 2012-06-21T19:23:48.480 回答
0

我很确定代码没有使用 System.Net.Http.HttpContent 类,而是使用 Microsoft.Http.HttpContent。Microsoft.Http 是 WCF REST Starter Kit,在放入 .NET Framework 之前从未进行过预览。你仍然可以在这里找到它:http: //aspnet.codeplex.com/releases/view/24644

我不建议在其上添加新代码。

于 2016-02-01T09:12:11.190 回答
-1

只是离开Microsoft.AspNet.WebApi.Client这里使用的方式。

例子:

var client = HttpClientFactory.Create();
var result = await client.PostAsync<ExampleClass>("http://www.sample.com/write", new ExampleClass(), new JsonMediaTypeFormatter());
于 2020-07-23T08:23:35.947 回答