J'essaie d'utiliser HttpContent
:
HttpContent myContent = HttpContent.Create(SOME_JSON);
... mais je n'ai aucune chance de trouver le DLL où il est défini.
Tout d'abord, j'ai essayé d'ajouter des références à Microsoft.Http
ainsi qu'à System.Net
, mais aucune de celles-ci ne figure dans la liste. J'ai également essayé d'ajouter une référence à System.Net.Http
mais la classe HttpContent
n'est pas disponible.
Alors, quelqu'un peut-il me dire où je peux trouver la classe HttpContent
?
Il suffit d'utiliser ...
var stringContent = new StringContent(jObject.ToString());
var response = await httpClient.PostAsync("http://www.sample.com/write", stringContent);
Ou,
var stringContent = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync("http://www.sample.com/write", stringContent);
Pour prendre le commentaire de 6footunder et le transformer en réponse, HttpContent
est abstrait, vous devez donc utiliser l'une des classes dérivées:
Pour 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/
Alors que la version finale de HttpContent et l'ensemble de l'espace de noms System.Net.Http seront fournis avec .NET 4.5, vous pouvez utiliser une version .NET 4 en ajoutant le package Microsoft.Net.Http de NuGet.
Je suis à peu près sûr que le code n'utilise pas la classe System.Net.Http.HttpContent, mais plutôt Microsoft.Http.HttpContent. Microsoft.Http était le kit de démarrage WCF REST, qui n’avait jamais été aperçu avant d’être placé dans le .NET Framework. Vous pouvez toujours le trouver ici: http://aspnet.codeplex.com/releases/view/24644
Je ne recommanderais pas de baser le nouveau code dessus.
L'espace de nom System.Net.Http
(où réside la classe HttpContent
) est nouveau pour . Net 4.5, utilisez-vous un contrôleur VS2012?
Sinon, vous n'auriez pas accès à cela.