【问题标题】:Form POST with no submit button没有提交按钮的表单 POST
【发布时间】:2016-07-08 12:25:37
【问题描述】:

我想将支付网关集成到我的网络应用程序中,并发现他们的集成需要一个前端表单来提交值 - 在应用程序中,我目前没有支付前端,只有一个后端负载结束收集信息并将其传递到类似支付网关的 url 的 VB.NET 代码。

作为网关依赖于发布的表单,我需要找到一种仅使用后端代码来模拟这种情况的方法,所以关于这一切,我最大的问题是,是否可以提交(POST)表单而不使用用户点击按钮?

前端需要的表格是:

<form method="post" action="https://mdepayments.epdq.co.uk/ncol/test/orderstandard.asp / orderstandard_utf8.asp" id=form1 name=form1>

<!-- general parameters: see Form parameters -->
<input type="hidden" name="PSPID" value="">
<input type="hidden" name="ORDERID" value="">
<input type="hidden" name="AMOUNT" value="">
<input type="hidden" name="CURRENCY" value="">
<input type="hidden" name="LANGUAGE" value="">
<input type="hidden" name="CN" value="">
<input type="hidden" name="EMAIL" value="">
<input type="hidden" name="OWNERZIP" value="">
<input type="hidden" name="OWNERADDRESS" value="">
<input type="hidden" name="OWNERCTY" value="">
<input type="hidden" name="OWNERTOWN" value="">
<input type="hidden" name="OWNERTELNO" value="">

<!-- check before the payment: see Security: Check before the payment -->
<input type="hidden" name="SHASIGN" value="">

<!-- layout information: see Look and feel of the payment page -->
<input type="hidden" name="TITLE" value="">
<input type="hidden" name="BGCOLOR" value="">
<input type="hidden" name="TXTCOLOR" value="">
<input type="hidden" name="TBLBGCOLOR" value="">
<input type="hidden" name="TBLTXTCOLOR" value="">
<input type="hidden" name="BUTTONBGCOLOR" value="">
<input type="hidden" name="BUTTONTXTCOLOR" value="">
<input type="hidden" name="LOGO" value="">
<input type="hidden" name="FONTTYPE" value="">

<!-- post payment redirection: see Transaction feedback to the customer -->
<input type="hidden" name="ACCEPTURL" value="">
<input type="hidden" name="DECLINEURL" value="">
<input type="hidden" name="EXCEPTIONURL" value="">
<input type="hidden" name="CANCELURL" value="">

<input type="submit" value="" id=submit2 name=submit2>
</form> 

在没有按钮的情况下提交表单失败,如果我在所有隐藏字段都到位后重新定向到操作 url,它会产生相同的效果吗?

【问题讨论】:

  • 您可以在javascript中调用表单的提交函数。
  • 我拥有的 url 没有像 POST 示例中那样发送参数 - 它发送隐藏字段的值 - 如果它作为参数发送它们,我将能够创建一个字符串构建器,但我需要像表单一样传递值的东西,就像表单是隐藏字段时一样

标签: html asp.net vb.net forms webforms


【解决方案1】:

使用 System.Net.WebClient 是最简单的方法。

Dim Url As String = "https://mdepayments.epdq.co.uk/ncol/test/orderstandard.asp"

Using Client As New WebClient
    Dim Params As New Specialized.NameValueCollection

    With Params
        .Add("PSPID", "")
        .Add("ORDERID", "")
        '......
    End With

    Dim Response As Byte() = Client.UploadValues(Url, "POST", Params)
    Dim ResponseText As String = (New Text.UTF8Encoding).GetString(Response)
End Using

【讨论】:

  • 我假设的“参数”集合将充当隐藏字段,因此我可以完全删除表单吗?这是否意味着当表单提交时,这基本上就是在后台发生的事情?
  • 是的,是的。也许 Params 是一个糟糕的变量名。 Client.UploadValues() 在请求正文中发送名称/值集合。它不会将它们作为查询字符串发送。
猜你喜欢
  • 1970-01-01
  • 2010-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-26
  • 2019-09-17
相关资源
最近更新 更多