我尝试了this Java提示,但没有成功。如果不成功,我的意思是我回读的回复是完全相同的页面。
这是初始页面的部分截图 -
如您所见,我正在尝试填写用户名和密码/密码字段。这将允许我访问其他感兴趣的页面。如果它有帮助,这里是 form 标签的片段 -
<form method="post" action="platform.cgi">
从 action 属性中,我推测在帖子上,它会执行 platform.cgi 脚本。它是否正确?此外,对于登录按钮,它会调用 javascript 方法(即loginValidate()
) -
<input type="submit" value="Login" name="umi.loginAuth" class="b0" title="Login" onclick="return loginValidate ()">
此外,这里有两个文本字段的片段,如果这也有帮助 -
<input type="text" name="web0x120010" id="txtUserName" size="26" class="txtbox" maxlength="31">
<input type="password" name="web0x120011" id="txtPwd" size="26" class="txtbox" maxlength="64">
当我在示例中填写内容时,我使用了txtUserName
和txtPwd
,但这不起作用。任何可能对我有帮助的想法或其他资源?
如果这还不够清楚,请告诉我 - 谢谢!
答案 0 :(得分:4)
如果您的问题是发布一些数据并进入网站,那么我建议您使用基本上为这些类型的问题创建的common-http-client库。 调用post方法到站点的典型方法如下(来自Here)
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://vogellac2dm.appspot.com/register");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("registrationid",
"123456789"));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = client.execute(post);
BufferedReader rd = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
String line = "";
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
对你来说非常方便,你不必像HttClient那样管理会话。如果您使用相同的HttpClient实例,这对于在登录后访问后续页面很重要。
答案 1 :(得分:2)
使用名称(web0x120010
和web0x120011
)发布,而不是输入框的ID,并发布umi.loginAuth=Login
键值对。如果它没有用,请安装HttpFox Firefox扩展并记录正常的登录请求并检查日志中的post参数。
根据http://stupidunixtricks.blogspot.com/2010_10_01_archive.html,您也应该关注cookie。