2016-07-12 19 views
1

Wenn fügt ein Anrufer HttpContent:Wie bekomme ich HttpContent vom Request-Objekt?

using (var content = new MultipartFormDataContent()) 
{ 
    HttpContent additionalContent = StringContent("just a test"); 
    content.Add(additionalContent); 

die dann POST'ed, wie funktioniert der Empfänger diesen zusätzlichen Inhalt abrufen?

Ich habe Beispiele gesehen, wo Leute Request.Content aufrufen. HttpContent.Current.Request hat jedoch kein Inhaltsobjekt.

Der Empfänger ist eine [HttpPost] WebAPI.

+0

Kontrolle dieses http://stackoverflow.com/questions/12494067/read-httpcontent-in-mvc-webapi- Controller – PSK

Antwort

2

Verwenden ReadAsMultipartAsync Erweiterungsmethode für Content-Teile bekommen und dann ReadAsStringAsync zum Parsen String Inhalt:

var provider = await Request.Content.ReadAsMultipartAsync(); 
var content = provider.Contents.FirstOrDefault(); //assumed single content part has been sent 
if (content != null) 
{ 
    var result = await content.ReadAsStringAsync(); 
} 
+0

Etwas über das Ändern des Methodentyps zu Task , was ich nicht tun möchte. – 4thSpace

+0

Was meinst du? Wie ist das zusammen? –

+0

Dies funktioniert nicht in einer Methode, die HttpMessageResponse zurückgibt. Ich will die Methode nicht nur dafür umstrukturieren. – 4thSpace

0

Ich denke, die Körper Ihrer Anfrage ist nichts anderes als Inhalt der Anfrage. Bitte kreuzen Sie mit F12 Entwickler-Tools-> Netzwerk-> Request-Antwort-Abschnitt oder Body-Abschnitt.

+0

Ja richtig. Ich habe bestätigt. Sie können Ihren Code testen – ravindra

+0

Dies ist in einer Client-App, nicht im Web. – 4thSpace