将网页中的表单输入值加载到 URLRequest 中?
我如何提取下面 html 源的表单值并将它们添加到 NSURLConnection 中?
<tr>
<th><label for="username"><span class="accesskey">N</span>etID:</label></th>
<td><input id="username" name="username" class="required" tabindex="1" accesskey="n" type="text" value="" size="32" autocomplete="false"/></td>
</tr><tr>
<th><label for="password"><span class="accesskey">P</span>assword:</label></th>
<td><input id="password" name="password" class="required" tabindex="2" accesskey="p" type="password" value="" size="32"/></td>
</tr><tr>
<th><label for="authenticationType"><span class="accesskey">A</span>uthentication Type:</label></th>
<td>
<select id="authenticationType" name="authenticationType">
<option value="Kerberos">Default</option>
<option value="SafeWord">SafeWord</option>
</select>
</td>
</tr><tr>
<th></th>
<td>
<input type="checkbox" id="warn" name="warn" value="true" tabindex="3" />
<label for="warn" class="other" accesskey="w"><span class="accesskey">W</span>arn me before logging me into other sites.</label>
</td>
</tr><tr>
<th></th>
<td>
<input type="hidden" name="_currentStateId" value="" />
<input type="hidden" name="_eventId" value="submit" />
<input type="submit" accesskey="l" value="LOGIN" tabindex="4" />
</td>
</tr>
How would I pull out the form values for the html source below and add them to an NSURLConnection?
<tr>
<th><label for="username"><span class="accesskey">N</span>etID:</label></th>
<td><input id="username" name="username" class="required" tabindex="1" accesskey="n" type="text" value="" size="32" autocomplete="false"/></td>
</tr><tr>
<th><label for="password"><span class="accesskey">P</span>assword:</label></th>
<td><input id="password" name="password" class="required" tabindex="2" accesskey="p" type="password" value="" size="32"/></td>
</tr><tr>
<th><label for="authenticationType"><span class="accesskey">A</span>uthentication Type:</label></th>
<td>
<select id="authenticationType" name="authenticationType">
<option value="Kerberos">Default</option>
<option value="SafeWord">SafeWord</option>
</select>
</td>
</tr><tr>
<th></th>
<td>
<input type="checkbox" id="warn" name="warn" value="true" tabindex="3" />
<label for="warn" class="other" accesskey="w"><span class="accesskey">W</span>arn me before logging me into other sites.</label>
</td>
</tr><tr>
<th></th>
<td>
<input type="hidden" name="_currentStateId" value="" />
<input type="hidden" name="_eventId" value="submit" />
<input type="submit" accesskey="l" value="LOGIN" tabindex="4" />
</td>
</tr>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您知道 HTML 也是有效的 XML,则可以通过 NSXMLParser(或其他 XML 解析代码)运行整个过程,并在检测到作为表单输入的元素(例如
;
)。否则,您最好编写自己的字符串解析函数 - 查找您想要抓取的标签的任何实例,提取 << 之间的所有文本。 和> 字符,用空格分隔,然后找到输入字段的名称,以便将其放入 NSURLConnection 中。
If you know the HTML is also valid XML, you can run the whole thing through an NSXMLParser (or other XML-parsing code) and perform some action whenever it detects an element that is a form input (such as
<input>
).Otherwise, you might be better off just writing your own string-parsing function(s) - look for any instance of the tag you want to grab, pull all the text between the < and > characters, split it by spaces, and then find the name of the input field so you can put it into an NSURLConnection.
我使用了elementParser。 谢谢!
I used elementParser. Thanks!