Kann ich senden Sie eine leere HTTP-POST-WebRequest-Objekt aus C# IIS?
Muss ich nur slap einigen zufälligen Datenmüll in einem WebRequest
Objekt zu bekommen, indem Sie die HTTP-status-code 411 Beschränkung auf IIS?
Habe ich ein HttpPost Methode Aktion in einer MVC-3-app, verbraucht eine POST-Anfrage mit allen relevanten Informationen übergeben, querystring (kein Körper benötigt).
[HttpPost] public ActionResult SignUp(string email) { ... }
Es hat Super geklappt von Visual Studio built-in web-host, Cassini. Leider, wenn das MVC-code wurde live auf IIS [7.5 auf 2008 R2], der server ist pitching wieder ein HTTP-Fehler-code, wenn ich schlug es aus meiner außerhalb der C# - Formular app.
Dem remote server hat einen Fehler zurückgegeben:
(411) Länge Erforderlich.
Hier ist der aufrufende code:
WebRequest request = WebRequest.Create("http://somewhere.com/signup/[email protected]");
request.Method = "POST";
using (WebResponse response = request.GetResponse())
using (Stream responseStream = response.GetResponseStream())
using (StreamReader responseReader = new StreamReader(responseStream)) {
//Do something with responseReader.ReadToEnd();
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellt sich heraus, können Sie diese durch zu gehen, indem Sie einfach schlagen einen leeren Inhalt Länge auf Wunsch, bevor Sie Sie senden.
Nicht sicher, wie Sie Sie explizit die Angabe einer leeren Länge vs. impliziert eine macht einen Unterschied, aber der IIS war glücklich, nachdem ich habe. Es gibt wahrscheinlich auch andere Möglichkeiten, um dieses, aber das scheint einfach genug.
Ich glaube, Sie sind erforderlich, um einen Content-Length-header jederzeit senden Sie eine Anfrage an einen web-server:
http://msdn.microsoft.com/en-us/library/system.web.httprequest.contentlength.aspx
Könnten Sie versuchen, einen GET-request, um es zu testen.