我需要从java提交一个aspx页面.我正在使用HTTp Client以及HttpUrlConnection这样做.调用页面很简单,但我需要设置一个单选按钮以检查状态,然后将输入字段的值设置为我要搜索的内容并发布页面.
我在HttpUrlConnection上使用了post requestmethod,并尝试使用值作为编码字符串设置输入字段的值 - 不知道这是否是正确的方法.另外我不知道如何设置单选按钮状态进行检查
所以你们可以帮助我如何完成这项任务.
任何帮助将受到高度赞赏
谢谢
马诺
您需要知道输入元素的名称(包括提交按钮本身!).它们需要作为请求参数与期望值一起发送.您需要根据这些名称 - 值对组合HTTP查询字符串,并将其写入请求正文.
假设生成的ASPX页面的HTML如下所示:
<form action="page.aspx" method="post">
<input type="text" name="foo" />
<input type="radio" name="bar" value="option1" />
<input type="radio" name="bar" value="option2" />
<input type="radio" name="bar" value="option3" />
<input type="submit" name="action" value="send" />
</form>
Run Code Online (Sandbox Code Playgroud)
当您想要虚拟输入hello输入值时,选择第二个选项option2并按下提交按钮,然后最终查询字符串需要如下所示:
foo=hello&bar=option2&action=send
Run Code Online (Sandbox Code Playgroud)
将其写入请求正文.在这种情况下URLConnection,它将是:
String query = "foo=hello&bar=option2&action=send";
String charset = "UTF-8";
URLConnection connection = new URL("http://example.com/page.aspx").openConnection();
connection.setDoOutput(true); // Triggers POST method.
connection.setRequestProperty("Accept-Charset", charset);
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=" + charset);
connection.getOutputStream().write(query.getBytes(charset));
Run Code Online (Sandbox Code Playgroud)