从 NSURLRequest 以编程方式按下 html 按钮
Posted
技术标签:
【中文标题】从 NSURLRequest 以编程方式按下 html 按钮【英文标题】:Programmatically press html button from NSURLRequest 【发布时间】:2012-10-30 09:40:26 【问题描述】:我有一个 html 表单,它在加载时已经填充了数据。它有保存和应用按钮。
我想更改表单上的 1 项并从我的 ios 应用程序中发布它。问题是,当我为我正在更改的项目发送带有更改的表单数据信息的 POST 时,我还需要提交表单中的所有其他当前设置,否则它们会被空白覆盖。 (我无法控制页面的编辑)。 我可以事先解析页面以从表单中获取显示的数据,然后使用 POST 发送它,但是页面对于每个用户来说可能看起来不同,所以这将非常困难。
在网页浏览器中,当我在加载页面后点击“保存”按钮时,我可以看到所有 POST 标题和表单数据,所以我想我可以在我的应用程序中执行此操作以获取当前数据,然后修改 1我想更改的项目,然后重新发布。
所以我的问题是,如果我使用 AFNetworking 读取页面,我是否可以模拟按下该页面上的“保存”按钮,这样我就可以读取响应,但这次使用 POST 和标题数据?
或者关于如何实现这一点的任何替代想法?
【问题讨论】:
【参考方案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 视图实际上并未显示给用户,您仍然可以通过编程方式与之交互)以上是关于从 NSURLRequest 以编程方式按下 html 按钮的主要内容,如果未能解决你的问题,请参考以下文章