使用 cURL&PHP 提交 "complex" ASP.net 表单
Submitting "complex" ASP.net forms using cURL&PHP
我正在尝试创建一个机器人来使用 cURL 和 PHP 提交 ASP.net 表单。我可以用简单的表格来做到这一点,但我被一个使用网格的电子邮件表格卡住了。查看提交表单时的网络流量,我发现这是发布到表单的参数之一:
panForm$cbpEmail$FormLayout$grdFaleConoscoDestinatarios: {"selection":"T","callbackState":"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","groupLevelState":{},"keys":["201259","201260","201261","201262","201263","201264","201265","201266","201267","201268","201269","201270","201271","201272","201273","201274","201275","201276"]}
此数据代表一个网格,它是电子邮件表单的一部分,用户可以在其中 select 谁将收到电子邮件。
我的问题是如何模仿 ASP.net 从页面上的网格创建此数据以便能够提交电子邮件表单?有人知道这方面的信息 "callbackstate" 吗?
在多次提交相同的表单后,我意识到我不需要关心回调状态。在我的案例中重要的是正确设置此 JSON 的选择属性(在页面上创建组件期间提供)。
选择属性表示网格中复选框的状态。 T 表示真,F 表示假。 selection="T" 表示仅选择第一行,而 selection="FTFT" 表示选择第二行和第四行。未在选择属性中表示的其余行默认为 false。
此致
我正在尝试创建一个机器人来使用 cURL 和 PHP 提交 ASP.net 表单。我可以用简单的表格来做到这一点,但我被一个使用网格的电子邮件表格卡住了。查看提交表单时的网络流量,我发现这是发布到表单的参数之一:
panForm$cbpEmail$FormLayout$grdFaleConoscoDestinatarios: {"selection":"T","callbackState":"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","groupLevelState":{},"keys":["201259","201260","201261","201262","201263","201264","201265","201266","201267","201268","201269","201270","201271","201272","201273","201274","201275","201276"]}
此数据代表一个网格,它是电子邮件表单的一部分,用户可以在其中 select 谁将收到电子邮件。
我的问题是如何模仿 ASP.net 从页面上的网格创建此数据以便能够提交电子邮件表单?有人知道这方面的信息 "callbackstate" 吗?
在多次提交相同的表单后,我意识到我不需要关心回调状态。在我的案例中重要的是正确设置此 JSON 的选择属性(在页面上创建组件期间提供)。
选择属性表示网格中复选框的状态。 T 表示真,F 表示假。 selection="T" 表示仅选择第一行,而 selection="FTFT" 表示选择第二行和第四行。未在选择属性中表示的其余行默认为 false。
此致