Comment Obtenir les données HTTP Post en C#?
Je suis en utilisant Mailgun API. Il y a une section que j'ai besoin de fournir une URL pour eux, alors ils vont HTTP Post de certaines données pour moi.
Je fournir cette URL (http://test.com/MailGun/Webhook.aspx) à Mailgun, de sorte qu'ils peuvent publier des données. J'ai une liste de noms de paramètres qu'ils envoient comme (destinataire,de domaine, ip,...).
Je ne suis pas sûr de savoir comment obtenir que les données publiées dans ma page.
Dans Webhook.page aspx, j'ai essayé un peu de code ci-dessous mais ils sont tous vides.
lblrecipient.text= Request.Form["recipient"];
lblip.Text= Request.Params["ip"];
lbldomain.Text = Request.QueryString["domain"];
Pas sûr de ce que d'essayer d'obtenir les données publiées?
- Vous pouvez essayer d'utiliser un violon pour tracer les données post et de voir ce genre de paramètres de votre page à partir de la demande
- Vérifier cela? Demande.Forme.AllKeys
- il est Vide.
Vous devez vous connecter pour publier un commentaire.
Ce code affichera la liste de toutes les variables qui sont envoyés dans un POST. De cette façon, vous pouvez voir si vous avez les noms propres de la poste valeurs.
Ce code lit les raw du flux d'entrée de la requête HTTP. Utilisez cette option si les données ne sont pas disponibles sur Demande.Forme ou d'autres liaisons de modèle ou si vous avez besoin d'accéder aux octets/texte comme il vient.
Vous pouvez simplement utiliser
Request["recipient"]
"lire la HTTP valeurs envoyées par un client lors d'une requête Web"Source:
MSDN
Mise à jour: résumé de la conversation
Afin d'afficher les valeurs qui MailGun est l'affichage de votre site, vous aurez besoin de les lire à partir de la demande web qui MailGun est de rendre, de les enregistrer quelque part, et puis de les afficher sur votre page.
Vous devez disposer d'un point d'arrêt où MailGun va envoyer le POST des valeurs et une autre page que vous utilisez pour afficher les valeurs enregistrées.
Il semble que maintenant vous avez une page. Ainsi, lorsque vous affichez cette page, et vous lisez les valeurs de Demande, vous lisez les valeurs de VOTRE demande, pas MailGun.
Il vous manque une étape. Vous devez vous connecter /enregistrer les valeurs sur votre serveur (mailgun est un client). Ensuite, vous devez récupérer ces valeurs sur votre serveur (votre pc avec votre navigateur web sera un client). Ces deux totalement différents fichiers aspx (ou le même avec des paramètres différents).
aspx page 1 (celui qui mailgun a):
aspx page 2:
Utiliser ceci:
Dans le navigateur web, ouvrez le développeur de la console (F12 en Chrome et IE), puis ouvrez l'onglet réseau et de regarder la demande et des données de réponse. Une autre option - utiliser Fiddler (http://fiddler2.com/).
Lorsque vous obtenez de voir le POST de demande qu'il soit envoyé à votre page, regarder dans la chaîne de requête et les en-têtes. Vous verrez si vos données dans la chaîne de requête ou de la forme - ou peut-être qu'il n'est pas envoyé à votre page à tous.
Mise à JOUR: désolé, j'avais regarder MailGun Api d'abord, ils ne passent pas par le biais de votre navigateur, les demandes proviennent directement à partir de leur serveur. Vous aurez à déboguer et d'examiner tous les membres de Demande.Params lorsque vous obtenez le POSTE de MailGun.
Essayer cette
Dans mon cas parce que j'ai attribué le poste de données à l'en-tête, c'est la façon dont je l'obtenir:
C'est de cette façon que j'ai joint la valeur et la clé de la
POST
: