我需要从java提交一个aspx页面。我正在使用HTTp Client以及HttpUrlConnection这样做。调用页面很简单,但我需要设置一个单选按钮以检查状态,然后将输入字段的值设置为我要搜索的内容并发布页面。
我在HttpUrlConnection上使用了post requestmethod,并尝试使用编码字符串的值设置输入字段的值 - 不知道这是否是正确的方法。另外我不知道如何将单选按钮状态设置为选中
那么你们可以帮助我完成这项任务。
任何帮助都将受到高度赞赏
由于
的Manoj
答案 0 :(得分:9)
您需要知道输入元素的名称(包括提交按钮本身!)。它们需要作为请求参数与期望值一起发送。您需要根据这些名称 - 值对组合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>
如果您想虚拟输入hello
作为输入值,请选择第二个选项option2
并按提交按钮,然后最终查询字符串需要如下所示:
foo=hello&bar=option2&action=send
将其写入请求正文。如果是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));