亲,我还想问问,你用的jar包是那种jar包。我下载的httpClient和你的不一样啦? 感谢!jar包找到了,现在httpclient已经独立出来了。在这个页面中,http://hc.apache.org/downloads.cgi找到 Older releases Old releases are available from the archives.就是找到旧版本然后 commons-httpclient/ 然后 http://archive.apache.org/dist/httpcomponents/commons-httpclient/binary/下载jar包, 这个httpclient 还依赖另外两个jar吧。 这个就应该很好找。
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();
}
}}
打印:
<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="xform.xsl" ?><status><jvm><memory free='52663288' total='62980096' max='933953536'/></jvm><connector name='http-8080'><threadInfo maxThreads="200" currentThreadCount="4" currentThreadsBusy="1" /><requestInfo maxTime="96" processingTime="276" requestCount="26" errorCount="9" bytesReceived="0" bytesSent="102224" /><workers><worker stage="R" requestProcessingTime="0" requestBytesSent="0" requestBytesRecieved="0" remoteAddr="?" virtualHost="?" method="?" currentUri="?" currentQueryString="?" protocol="?" /><worker stage="R" requestProcessingTime="0" requestBytesSent="0" requestBytesRecieved="0" remoteAddr="?" virtualHost="?" method="?" currentUri="?" currentQueryString="?" protocol="?" /><worker stage="S" requestProcessingTime="2" requestBytesSent="0" requestBytesReceived="0" remoteAddr="127.0.0.1" virtualHost="127.0.0.1" method="GET" currentUri="/manager/status" currentQueryString="XML=true" protocol="HTTP/1.1" /><worker stage="R" requestProcessingTime="0" requestBytesSent="0" requestBytesRecieved="0" remoteAddr="?" virtualHost="?" method="?" currentUri="?" currentQueryString="?" protocol="?" /></workers></connector><connector name='ajp-8009'><threadInfo maxThreads="200" currentThreadCount="0" currentThreadsBusy="0" /><requestInfo maxTime="0" processingTime="0" requestCount="0" errorCount="0" bytesReceived="0" bytesSent="0" /><workers></workers></connector></status>
感谢!我试试,我查到一种Authentication认证机制,好像就是这个东西。解决了的话,我也准备把结果贴在这里。
亲,我还想问问,你用的jar包是那种jar包。我下载的httpClient和你的不一样啦?
亲,我还想问问,你用的jar包是那种jar包。我下载的httpClient和你的不一样啦?
感谢!jar包找到了,现在httpclient已经独立出来了。在这个页面中,http://hc.apache.org/downloads.cgi找到
Older releases
Old releases are available from the archives.就是找到旧版本然后 commons-httpclient/ 然后 http://archive.apache.org/dist/httpcomponents/commons-httpclient/binary/下载jar包, 这个httpclient 还依赖另外两个jar吧。
这个就应该很好找。