HTTP POST 重定向自 Behind Code c#

本文关键字:Code Behind POST 重定向 HTTP | 更新日期: 2023-09-27 17:56:42

<form action="https://demo.bank.com/payment" method="post">
<input name="x_login" type="hidden" runat="server" id="x_login" />
<input name="x_amount" type="hidden" runat="server" id="x_amount" />
<input name="x_fp_sequence" type="hidden" runat="server" id="x_fp_sequence" />
<input name="x_fp_timestamp" type="hidden" runat="server" id="x_fp_timestamp" />
<input name="x_fp_hash" type="hidden" runat="server" id="x_fp_hash" />
<input name="x_show_form" type="hidden" runat="server" id="x_show_form" />
<input name="x_line_item" value="<%# Eval("Desc") %>" type="hidden" />
<input type="submit" name="submit" value="Submit" class="btn_confirm" />
</form>

上面是一个示例代码,我用它来将数据发布到银行网站上以进行信用卡处理。 它工作正常,但我需要在代码后面执行此操作。 我已经尝试了WebClient()和HttpClient(),它们都只通过数据并且不会重定向浏览器(除非我没有正确编码)。 似乎不会将用户重定向到银行网站。这可能吗?如果是这样,我该如何完成此操作?PS:对不起,我是将POST数据粘贴到外部URL的新手。

HTTP POST 重定向自 Behind Code c#

您必须打开连接并通过 Web 客户端发布您的值。请记住,Web客户端只是一个包装器。为了简单起见,我只添加了两个参数,一个是空的(x_login),一个是带有值的。必须包含密钥才能序列化和发布。

<input name="x_login" type="hidden" runat="server" id="x_login" />
<input name="x_line_item**" value="<%# Eval("Desc") %>" type="hidden" />
using(WebClient client = new WebClient())
{
    var reqparm = new System.Collections.Specialized.NameValueCollection();
    reqparm.Add("x_login", ""); // You're sending the key with en empty value
    reqparm.Add("x_line_item", Eval("Desc") );
    byte[] responsebytes = client.UploadValues("https://demo.bank.com/payment", "POST", reqparm);
    string responsebody = Encoding.UTF8.GetString(responsebytes);
}