J'essaie d'obtenir les valeurs d'un HtmlForm
créé par programme à un site externe. Ce site nécessite que les données soient envoyées sous la forme POST
, car elles peuvent contenir des informations sensibles.Comment soumettre un formulaire par programmation à partir du code derrière un site externe
je produis le HtmlForm
d'un JSON-réponse comme ceci:
JObject jsonResponseActionData = (JObject)joResponse["action_data"];
var redirectURL = (JValue)jsonResponseActionData["url"];
HtmlForm form= new HtmlForm {
Method = "post",
Action = redirectURL.ToString()
};
var inputTypeString = "<input type=\"text\" name=\"inputName\" value=\"inputValue\">";
foreach (var obj in jsonResponseFields) {
if (obj.Value.ToString() == "") {
form.InnerHtml += inputTypeString.Replace("inputName", obj.Key).Replace("inputValue", "").Replace(">", " disabled >");
} else {
form.InnerHtml += inputTypeString.Replace("inputName", obj.Key).Replace("inputValue", obj.Value.ToString());
}
}
Si je l'écris comme celui-ci dans un fichier HTML et ajouter un bouton soumettre à lui, je peux le soumettre au site externe avec succès, donc je suis capable de prendre le JSon-Response et d'extraire toutes les informations à partir de là correctement.
Ce que j'ai essayé:
- Ajout d'un élément de formulaire caché à la APSX page, mais this isn't possible and results in an empty stack error
- submitting it with
Server.Transfer
andResponse.Redirect
, mais les deux exceptions de portée (System.ArgumentException
etThreadAbortException
, respectivement), étant donné que je veux atteindre un site externe
Comment puis-je soumettre mon formulaire généré au site externe? Notez que ce site exige en effet que je soumette un formulaire, donc toute autre solution n'impliquant pas la soumission d'un formulaire n'est pas constructive.