Answers:
HttpContent
可以找到该类。(还请注意,OP接受了这个答案。)碰巧的是,OP遇到了第二个问题(试图构造的实例HttpClient
),直到解决了DLL引用问题之后,该问题才可能对OP并不明显。这里的一些答案解决了第二个问题,许多人发现这些答案很有用。最后,我已经编辑了该问题(基于OP的原始文本)以进行澄清。
只是使用...
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 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/
.NET 4.5将附带最终版本的HttpContent和整个System.Net.Http命名空间,但您可以通过从NuGet 添加Microsoft.Net.Http包来使用.NET 4版本。
我很确定代码没有使用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?
否则,您将无权访问。