Accéder aux données de poste directement

J’ai une action dans l’un de mes contrôleurs qui va recevoir des requêtes HTTP POST en dehors de mon site Web MVC.

Toutes ces requêtes POST auront les mêmes parameters et je dois pouvoir parsingr les parameters.

Comment puis-je accéder aux données de publication depuis l’action?

C’est potentiellement une question très simple!

Merci

Les données POST de vos HTTP Reques peuvent être obtenues sur Request.Form .

 ssortingng data = new System.IO.StreamReader(Request.InputStream).ReadToEnd(); 

Utilisation

 Request.InputStream 

Cela vous donnera un access brut au corps du message HTTP, qui contiendra toutes les variables POST.

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

J’essayais d’accéder aux données POST après avoir été à l’intérieur du contrôleur MVC. Le InputStream était déjà analysé par le contrôleur, donc je devais remettre la position du InputStream à 0 pour le relire.

Ce code a fonctionné pour moi …

  HttpContext.Current.Request.InputStream.Position = 0; var result = new System.IO.StreamReader(HttpContext.Current.Request.InputStream).ReadToEnd(); 
 Stream req = Request.InputStream; req.Seek(0, System.IO.SeekOrigin.Begin); ssortingng json = new StreamReader(req).ReadToEnd(); JavaScriptSerializer serializer = new JavaScriptSerializer(); dynamic items = serializer.Deserialize(json); ssortingng id = items["id"]; ssortingng image = items["image"]; 

/// vous pouvez accéder aux parameters par nom ou par index

Le serveur Web ne doit pas se soucier de la provenance de la demande. Si votre application client a un contrôle d’entrée appelé nom d’utilisateur et qu’elle publie dans votre application, elle reprendra la même chose que si vous l’aviez postée à partir de votre propre application avec une entrée appelée nom d’utilisateur.

Une énorme mise en garde est que si vous avez implémenté AntiForgeryValidation qui provoquera un gros casse-tête pour permettre à un formulaire externe de poster.