2012-10-02 10 views
17

Ich brauche die rohe Anforderungszeichenfolge. Im Folgenden finden Sie ein Beispiel für die HTTP-Anfrage, die an den Controller gesendet wird. Eigentlich brauche ich Post-Daten (letzte Zeile). Wie kann ich das bekommen?Abrufen der RAW-Anforderung in ASP.NET MVC

Beachten Sie, dass ich den automatischen JSON-Modellbinder nicht verwenden möchte. Eigentlich brauche ich den rohen JSON-Text

POST http://www.anUrl.com/CustomExport/Unscheduled HTTP/1.1 
Accept: application/json, text/javascript, */*; q=0.01 
Content-Type: application/json; charset=utf-8 
X-Requested-With: XMLHttpRequest 
Referer: http://www.anUrl.com/CustomExport 
Accept-Language: en-us 
Accept-Encoding: gzip, deflate 
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) 
Host: localhost:8000 
Content-Length: 102 
Connection: Keep-Alive 
Pragma: no-cache 

{"runId":"1","fileDate":"8/20/2012","orderStartMinDate":"10/02/2012","orderStartMaxDate":"10/02/2012"} 

Diese letzte Zeile ist was ich brauche. Dies kommt nicht in

var input = new StreamReader(Request.InputStream).ReadToEnd(); 

Antwort

21

An diesem Punkt wurde der Strom bereits zu Ende gelesen. Sie müssen die Position des InputStream an den Anfang zurückstellen, bevor Sie sie selbst lesen können.

Request.InputStream.Position = 0; 
var input = new StreamReader(Request.InputStream).ReadToEnd(); 
+0

Danke, das Problem war genau das –