Puis-je envoyer un vide POST HTTP WebRequest objet de C# à IIS?
Dois-je juste mettre quelques aléatoire d'ordures de données dans un WebRequest
objet pour obtenir le code d'état HTTP 411 restriction sur IIS?
J'ai un HttpPost méthode d'action dans un MVC 3 app qui utilise une requête POST avec toutes les informations pertinentes passé dans la querystring (pas de corps).
[HttpPost] public ActionResult SignUp(string email) { ... }
Il a travaillé beaucoup à partir de Visual Studio web intégré hôte, la sonde Cassini. Malheureusement, une fois que le MVC code était en direct sur IIS [7.5 sur 2008 R2], le serveur est en tangage, en retour, un code d'erreur HTTP, quand j'ai frappé à partir de mon extérieur C# forme app.
Le serveur distant a retourné une erreur:
(411) Longueur Nécessaire.
Voici le code appelant:
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();
}
OriginalL'auteur patridge | 2011-05-06
Vous devez vous connecter pour publier un commentaire.
S'avère que vous pouvez l'obtenir à passer par simplement gifler un contenu vide de longueur sur la demande avant de l'envoyer.
Pas sûr de savoir comment explicitement de donner un vide longueur vs impliquant l'on fait une différence, mais IIS était heureux après je l'ai fait. Il y a probablement d'autres façons de contourner cela, mais cela semble assez simple.
OriginalL'auteur patridge
Je crois que vous sont nécessaires pour définir un Contenu de l'en-tête de Longueur quand vous poster une requête à un serveur web:
http://msdn.microsoft.com/en-us/library/system.web.httprequest.contentlength.aspx
Vous pourriez essayer une requête GET pour le tester.
OriginalL'auteur maniak1982