it-swarm.com.de

Kann nicht finden, wie man HttpContent verwendet

Ich versuche HttpContent zu benutzen:

HttpContent myContent = HttpContent.Create(SOME_JSON);

... aber ich habe kein Glück das DLL wo es definiert ist.

Zuerst habe ich versucht, Verweise auf Microsoft.Http ebenso gut wie System.Net, aber keiner ist in der Liste. Ich habe auch versucht, einen Verweis auf System.Net.Http aber die Klasse HttpContent ist nicht verfügbar.

Kann mir jemand sagen, wo ich die Klasse HttpContent finden kann?

157
user1416156

Benutz einfach...

var stringContent = new StringContent(jObject.ToString());
var response = await httpClient.PostAsync("http://www.sample.com/write", stringContent);

Oder,

var stringContent = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync("http://www.sample.com/write", stringContent);
320
Youngjae

Um den Kommentar von 6footunder in eine Antwort umzuwandeln, ist HttpContent abstrakt, sodass Sie eine der abgeleiteten Klassen verwenden müssen:

enter image description here

129
Chris S

Für JSON Post:

var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync("http://www.sample.com/write", stringContent);

Nicht-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/

50
Felipe Deveza

Während die endgültige Version von HttpContent und der gesamte System.Net.Http-Namespace mit .NET 4.5 geliefert werden, können Sie eine .NET 4-Version verwenden, indem Sie das Paket Microsoft.Net.Http von NuGet hinzufügen

6

Ich bin mir ziemlich sicher, dass der Code nicht die System.Net.Http.HttpContent-Klasse verwendet, sondern Microsoft.Http.HttpContent. Microsoft.Http war das WCF REST= Starter Kit, das noch nie eine Vorschau erstellt hat, bevor es in .NET Framework platziert wurde. Sie finden es immer noch hier: http: // aspnet .codeplex.com/releases/view/24644

Ich würde nicht empfehlen, neuen Code darauf aufzubauen.

0
RasmusW

Das System.Net.Http Namespace (wo HttpContent Klasse befindet) ist neu in . Net 4.5, verwenden Sie eine VS2012 RC?

Andernfalls hätten Sie keinen Zugriff darauf.

0
EkoostikMartin