晚上好。在我的应用程序中,我需要向需要验证码的网页发送请求。图像链接是一个.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吗?
答案 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()