场景:我有一个内部ASP.NET站点,允许我维护一组规则(CRUD)。要添加新规则,我只需填写HTML表单并单击“提交”。我目前的问题是我现在需要添加几百个规则,并且我想使用脚本来自动执行此操作。
初步计划:
我的尝试以 curl 为中心,并且与online testing page相得益彰。不幸的是,我无法让它与ASP.NET页面一起工作,我猜这必须对Postback和/或Viewstate做一些事情。
段:
curl -s -u "DOMAIN\user:password" --ntlm -d "key1=value1" -d "key2=value2" http://internal/page.aspx
(返回页面就像使用GET一样,没有错误消息)
问题:
如何欺骗我发送 Postback 的ASP页面? (也欢迎备用脚本建议)
修改:
来自ASP页面的片段:
<asp:LinkButton ... runat="server" OnClick="lbAddRule_Click" PostBackUrl="~/Page.aspx" />
代码背后的片段:
protected void lbAddRule_Click(object sender, EventArgs e) {
if (Page.IsValid == true) {
AddRule(x,y,z);
答案 0 :(得分:2)
采用完全不同的方法,您是否考虑过编写浏览器本身的脚本?有一些非常强大的技术,包括Selenium / WebDriver [1]和iMacros [2],它们都允许这种脚本。
答案 1 :(得分:1)
如果这是一个RESTful服务(您正在访问它),您可能需要考虑将当前处理该表单的页面重写为Web Service。然后,您可以使用curl访问所有您想要的内容,并重新连接您的表单,以便一切正常。