日期:2014-05-20  浏览次数:20738 次

Java获取网页信息,如何登录弹出弹出的对话框?
本帖最后由 beefcattlexiaoyang 于 2013-11-04 10:00:23 编辑
上个图

这是TOMCAT页面,点击左边的status 要求输入用户名和密码,我想用Java代码来实现自动填写用户名和密码登录。不知道这个怎么做,用了httpClient,貌似不行,有其他什么http工具可以实现这个功能么?

------解决方案--------------------
ajax。。。。。。
------解决方案--------------------
配置文件中需要配置。tomcat-users.xml
------解决方案--------------------

import java.io.IOException;

import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;

public class AutoLoginTomcat {

/**
 * @param args
 */
public static void main(String[] args) {
HttpClient httpClient = new HttpClient();

httpClient.getState().setCredentials(
new AuthScope("127.0.0.1", 8080, null),
new UsernamePasswordCredentials("admin", "admin"));
httpClient.getParams().setAuthenticationPreemptive(true);

GetMethod getMethod = new GetMethod(
"http://127.0.0.1:8080/manager/status?XML=true");
getMethod.setDoAuthentication(true);
getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler());
try {
int statusCode = httpClient.executeMethod(getMethod);
if (statusCode != HttpStatus.SC_OK) {
System.err.println("Method failed: "
+ getMethod.getStatusLine());
}
byte[] responseBody = getMethod.getResponseBody();
System.out.println(new String(responseBody));
} catch (HttpException e) {
System.out.println("Please check your provided http address!");
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
getMethod.releaseConnection();
}
}

}