【问题标题】:Programmatically press html button from NSURLRequest从 NSURLRequest 以编程方式按下 html 按钮
【发布时间】:2012-10-30 09:40:26
【问题描述】:

我有一个 html 表单,它在加载时已经填充了数据。它有保存和应用按钮。

我想更改表单上的 1 项并从我的 iOS 应用程序中发布它。问题是,当我为我正在更改的项目发送带有更改的表单数据信息的 POST 时,我还需要提交表单中的所有其他当前设置,否则它们会被空白覆盖。 (我无法控制页面的编辑)。
我可以事先解析页面以从表单中获取显示的数据,然后使用 POST 发送它,但是页面对于每个用户来说可能看起来不同,所以这将非常困难。

在网页浏览器中,当我在加载页面后点击“保存”按钮时,我可以看到所有 POST 标题和表单数据,所以我想我可以在我的应用程序中执行此操作以获取当前数据,然后修改 1我想更改的项目,然后重新发布。

所以我的问题是,如果我使用 AFNetworking 读取页面,我是否可以模拟按下该页面上的“保存”按钮,这样我就可以读取响应,但这次使用 POST 和标题数据?

或者关于如何实现这一点的任何替代想法?

【问题讨论】:

    标签: html ios xcode afnetworking nsurlrequest


    【解决方案1】:

    这可能通过访问文档对象模型来工作...检查语法...

    NSString *formValue = [webView stringByEvaluatingJavaScriptFromString
                            :@"document.forms[0].elements[0].value"];
    
    //...change value...
    
    NSString *jScript = [NSString stringWithFormat
                         :@"document.forms[0].elements[0].value='%@';", formValue ];
    
    [webView stringByEvaluatingJavaScriptFromString: jScript ];
    
    [webView stringByEvaluatingJavaScriptFromString: @"document.forms[0].submit();"];
    

    【讨论】:

    • 我还没有尝试过,但我看到你有 webView。我没有使用 webView,我希望它在后台发生,这样我就可以读取生成的标题。
    • 作为 AFNetworking 的创建者,让我第一个说你绝对不应该为此使用 AFNetworking。收听@kineticfocus--利用 web 视图中的 Javascript 交互(即使 web 视图实际上并未显示给用户,您仍然可以通过编程方式与之交互)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多