In einem meinem WebAPI Controller, würde Ich mag die ursprüngliche rohe HTTP-Anforderung, um zu sehen, die durch den Client gesendet wurden (wie das Material, das Sie auf http://web-sniffer.net/ sehen):# WebAPI C - Erhalten Sie volle HTTP-Anforderung
POST/HTTP/1.1
Host: www.some.host.tld
Connection: keep-alive
Accept-Encoding: gzip[CRLF]
Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7
field1=FIELD1&field2=FIELD2
Content-type: application/x-www-form-urlencoded
[...]
Wie kann ich das tun? Sowohl Request
als auch RequestContext
enthalten diese Daten nicht und ich habe keine andere Ressource für diesen Inhalt gefunden.
Ich habe versucht, nach ähnlichen Fragen zu SO, aber nur Fragen für rohe Inhalte oder (wenn voll HTML) für Java gefunden.
Im Hinterkopf habe ich eine kleine Erinnerung diesbezüglich in Kombination mit der FilterConfig.cs
, aber leider nichts spezifisch genug. Und mit etwas Glück weiß jemand, der besser informiert ist als ich, einen Weg, diese Information direkt zu bekommen.
Edit:
Es scheint, dass es unmöglich ist, die rohe HTTP-Anforderung direkt zu erfassen. Nach dem Lesen der verknüpften Antworten scheint es, dass ich die Anfrage aus mehreren Feldern neu erstellen muss.
Nach dem Link von Jeffs Kommentar in seiner Antwort, ich habe die ursprüngliche Anfrage von einem Bündel von analysierten Feldern neu zu erstellen:
HttpContext.Current.Request.HttpMethod
+.Url
+.ServerVariables["SERVER_PROTOCOL"]
für die Startlinie.HttpContext.Current.Request.ServerVariables["ALL_RAW"]
für die HeaderRequest.Content.ReadAsStreamAsync().Result
(vergessen Sie nicht suchen 0 vor dem Lesen zu positionieren) für den Inhalt
Diese 1 Zeile löst Ihr Problem var data = Request.Headers; –
@DanEsparza Die Antwort, die Sie verknüpft haben (14967457), hilft nicht. Die Antwort von Jeff Davies in seiner Antwort auf seine Antwort (1038466) hat mich auf den richtigen Weg gebracht. Bitte entferne oder bearbeite deinen Duplikatmarker, damit er beim Lesen nicht andere auf eine falsche Antwort (auf meine Frage) verführt. – MilConDoin