2016-09-01 1 views
0

Ich habe einen Web-API-Controller, der eine POST-Methode hat, die Daten aus dem Anfragetext empfängt, und alles es an einen anderen Webdienst sendet, so Deserialisierung der Daten ist nicht nötig. Wie kann ich die automatische Deserialisierung durch die Web-API deaktivieren?ASP.NET-Web-API - Get json in POST-Methode

public IHttpActionResult Post([FromBody]string data) 
{ 
//Post with http client... 

} 

Die Daten kommen mit dieser Signatur als null an.

+3

Bitte Code zeigen. – ekad

+0

Legen Sie den Anforderungsheader fest: Content-Type text/plain –

Antwort

2

prüfen dieses:

public async Task<HttpResponseMessage> Post(HttpRequestMessage request) 
{ 
    var data = await request.Content.ReadAsStringAsync(); 
    // do stuff with the content 
} 

Mehr über die Lösung: http://bizcoder.com/posting-raw-json-to-web-api

+0

Ich habe die Lösung mit dem JToken verwendet, es hat funktioniert! – user6251216

0

Senden Sie das Objekt als Zeichenfolge (im serialisierten Format). Zum Beispiel

YourMethod([FromBody]string json) 
+0

Er kommt als null an. – user6251216

+0

Dann senden Sie es nicht richtig. Stellen Sie sicher, dass Sie die richtigen Header verwenden. (Beispiel: Content-Type: application/json) Es gibt ein Tool namens Postman zum Testen Ihrer APIs mit –

+0

Entfernen von Körper –

0

Lesen Sie die reuest Inhalt wie folgt aus:

public Task<IHttpActionResult> Post() { 
    var str = await Request.Content.ReadAsStringAsync(); 
}