从网页,验证码,填充文本字段加载图像

时间:2012-09-01 18:09:05

标签: iphone objective-c uiwebview uitextfield asihttprequest

晚上好。在我的应用程序中,我需要向需要验证码的网页发送请求。图像链接是一个.php,每次刷新页面时,验证码都会更改。所以,如果我尝试“通过链接”下载图像,我有一个不同的验证码。解决办法是什么?任何的想法?提前谢谢。

编辑:现在我必须填写输入并发送提交请求。这是我必须填写的文本字段的html源:

<label class="ins" for="targ">Targa del veicolo:</label>
<input id="targ" name="targa" value="" type="text" size="20" maxlength="8" tabindex="2" />

<label for="inCaptchaChars">Codice di sicurezza:</label>  <input type="text" id="inCaptchaChars" name="inCaptchaChars" tabindex="1004" onblur="ShutMeDown()">

这是关于提交按钮:

<input type="submit" name="procedi"  value="Calcola importo" />

我要做什么才能继续?我必须使用ASIHTTP吗?

1 个答案:

答案 0 :(得分:1)

这可能有点令人费解,但它应该可以正常工作:

使用webView,加载页面,当页面加载时,在webview(stringByEvaluatingJavascript)上调用一些获取图像大小和偏移量的javascript。将WebView框架的大小调整为该大小,并将内容滚动到该偏移量。禁用用户交互并显示webview。 要获取元素偏移量,您可以使用this answer

只需致电:

[[webView stringByEvaluatingJavascript:@"function getOffset(el) {  .....  }  getOffset( document.getElementById('yourElId') ).left;"] floatValue];

并不是说您必须将整个代码传递给此方法

提交验证码: 和以前一样,打电话

[webView stringByEvaluatingJavascript :@"document.getElementsByName('procedi')[0].value = 'your captcha';"];

然后执行相同的操作,在提交按钮上调用.click()或在表单上调用.submit()