【发布时间】:2017-09-25 15:47:01
【问题描述】:
我尝试获取以编程方式创建的HtmlForm 的值到外部站点。本网站要求数据以POST 发送,因为它可能包含敏感信息。
我从这样的 JSon-Response 生成 HtmlForm:
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());
}
}
如果我像这样将它写入 HTML 文件并添加一个提交按钮,我可以成功地将它提交到外部站点,因此我能够获取 JSon-Response 并从中正确提取所有信息.
我尝试过的:
- 向 apsx 页面添加隐藏的表单元素,但 this isn't possible and results in an empty stack error
-
submitting it with
Server.TransferandResponse.Redirect,但都抛出异常(分别为System.ArgumentException和ThreadAbortException),因为我想访问外部站点
如何将生成的表单提交到外部站点?请注意,该网站确实要求我提交表单,因此任何其他不涉及提交表单的解决方案都没有建设性。
【问题讨论】:
标签: asp.net forms code-behind