我试图用HttpContent
:
HttpContent myContent = HttpContent.Create(SOME_JSON);
......但我没有任何运气找到定义它的DLL。
首先,我想加入引用Microsoft.Http
以及System.Net
,但也不是在列表中。 我也尝试添加到基准System.Net.Http
但HttpContent
类不可用。
那么,谁能告诉我哪里可以找到HttpContent
类?
我试图用HttpContent
:
HttpContent myContent = HttpContent.Create(SOME_JSON);
......但我没有任何运气找到定义它的DLL。
首先,我想加入引用Microsoft.Http
以及System.Net
,但也不是在列表中。 我也尝试添加到基准System.Net.Http
但HttpContent
类不可用。
那么,谁能告诉我哪里可以找到HttpContent
类?
类被列为存在于System.Net.Http
组件。 请注意,这个类是新的.NET 4.5,所以你需要使用该版本的BCL的。
只需使用...
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);
要采取6footunder的评论,并把它变成一个答案, HttpContent
所以你需要使用一个派生类是抽象的:
对于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/
虽然HttpContent和最终版的整个System.Net.Http命名空间将拿出.NET 4.5,你可以通过添加使用.NET 4的版本Microsoft.Net.Http从NuGet包
我敢肯定的代码没有使用System.Net.Http.HttpContent类,而是Microsoft.Http.HttpContent。 Microsoft.Http是WCF REST入门套件,被放置在.NET Framework之前从未做出来的预览。 你还可以在这里找到: http://aspnet.codeplex.com/releases/view/24644
我不会推荐它基础上构建新的代码。
该System.Net.Http
命名空间(其中HttpContent
类所在的)是一个新的.NET 4.5,你使用VS2012 RC?
否则,你就无法获得这一点。