I am trying to use HttpContent
:
HttpContent myContent = HttpContent.Create(SOME_JSON);
...but I am not having any luck finding the DLL where it is defined.
First, I tried adding references to Microsoft.Http
as well as System.Net
, but neither is in the list. I also tried adding a reference to System.Net.Http
but the HttpContent
class is not available.
So, can anyone tell me where I can find the HttpContent
class?
The class is listed as being present in the System.Net.Http
assembly. Note that this class is new for .NET 4.5, so you need to be using that version of the BCL.
Just use...
var stringContent = new StringContent(jObject.ToString());
var response = await httpClient.PostAsync("http://www.sample.com/write", stringContent);
Or,
var stringContent = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync("http://www.sample.com/write", stringContent);
To take 6footunder's comment and turn it into an answer, HttpContent
is abstract so you need to use one of the derived classes:
For JSON Post:
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync("http://www.sample.com/write", stringContent);
Non-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/
While the final version of HttpContent and the entire System.Net.Http namespace will come with .NET 4.5, you can use a .NET 4 version by adding the Microsoft.Net.Http package from NuGet
I'm pretty sure the code is not using the System.Net.Http.HttpContent class, but instead Microsoft.Http.HttpContent.
Microsoft.Http was the WCF REST Starter Kit, which never made it out preview before being placed in the .NET Framework.
You can still find it here: http://aspnet.codeplex.com/releases/view/24644
I would not recommend basing new code on it.
The System.Net.Http
namespace (where HttpContent
class resides) is new to .Net 4.5, are you using a VS2012 RC?
Otherwise, you wouldn't have access to this.