49 votes

L'accès publier des données directement

J'ai une action dans un de mes contrôleurs qui va recevoir des demandes HTTP POST à partir de l'extérieur de mon site web MVC.

Toutes ces demandes ont les mêmes paramètres et j'ai besoin d'être en mesure d'analyser les paramètres.

Comment puis-je accéder au poste de données à partir de l'intérieur de l'action?

C'est potentiellement une question très simple!

Merci

54voto

Jim Bolla Points 4079

Tu veux dire...... Request.Form?

38voto

boomhauer Points 2392
string data = new System.IO.StreamReader(Request.InputStream).ReadToEnd(); 

19voto

tomasmcguinness Points 3728

Utilisation

Request.InputStream 

Cela vous donnera accès brut pour le corps du message HTTP, qui contiendra toutes les variables POST.

http://msdn.microsoft.com/en-us/library/system.web.httprequest.inputstream.aspx

14voto

TWilly Points 744

J'ai essayé d'accéder à des données POST après j'étais à l'intérieur de la MVC du contrôleur. L'InputStream a déjà été analysé par le contrôleur, j'ai donc nécessaire de réinitialiser la position de l'InputStream à 0 afin de le lire à nouveau.

Ce code a fonctionné pour moi...

 HttpContext.Current.Request.InputStream.Position = 0;
 var result = new System.IO.StreamReader(HttpContext.Current.Request.InputStream).ReadToEnd();

3voto

Michael Gattuso Points 6536

Le serveur web ne devrait pas s'occuper d'où la demande provient d'. Si votre application client dispose d'un contrôle de saisie appelé nom d'utilisateur et les montants sont à votre application, il va prendre le même que si votre affiché si à partir de votre propre application avec une entrée appelé nom d'utilisateur.

Un énorme inconvénient est que si vous avez mis en œuvre AntiForgeryValidation qui cause un grand mal de tête pour permettre un à l'extérieur de la forme de poster.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X