我正在尝试使用HttpContent
:
HttpContent myContent = HttpContent.Create(SOME_JSON);
...但我没有找到定义它的DLL的运气。
首先,我尝试添加对Microsoft.Http
以及System.Net
的引用,但两者都不在列表中。我还尝试添加对System.Net.Http
的引用,但HttpContent
类不可用。
那么,有谁能告诉我在哪里可以找到HttpContent
课程?
答案 0 :(得分:304)
只需使用......
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);
答案 1 :(得分:121)
要获取6footunder的评论并将其转换为答案,HttpContent
是抽象的,因此您需要使用其中一个派生类:
答案 2 :(得分:41)
对于JSON Post:
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/
答案 3 :(得分:6)
虽然HttpContent的最终版本和整个System.Net.Http命名空间将随.NET 4.5一起提供,但您可以通过添加NuGet的Microsoft.Net.Http包来使用.NET 4版本
答案 4 :(得分:0)
System.Net.Http
命名空间(HttpContent
类所在的位置)是 .Net 4.5 的新用户,您使用的是VS2012 RC吗?
否则,您将无法访问此内容。
答案 5 :(得分:0)
我非常确定代码不使用System.Net.Http.HttpContent类,而是使用Microsoft.Http.HttpContent。 Microsoft.Http是WCF REST入门工具包,在放入.NET Framework之前从未进行过预览。 您仍然可以在此处找到它:http://aspnet.codeplex.com/releases/view/24644
我不建议在其上添加新代码。
答案 6 :(得分:-1)
只需在此处使用Microsoft.AspNet.WebApi.Client
即可。
示例:
var client = HttpClientFactory.Create();
var result = await client.PostAsync<ExampleClass>("http://www.sample.com/write", new ExampleClass(), new JsonMediaTypeFormatter());
答案 7 :(得分:-2)
System.Net.Http
程序集中的类is listed as being present。请注意,此类是.NET 4.5的新增功能,因此您需要使用该版本的BCL。