/**
* @author NECSTHZ.zhaojianming
* @Modification{#} TE12.java Create on 2009/02/17 14:00:27
* @version 1.0
* @JDK version used: jdk1.6
* @Copyright (c) 2008 by NECSTHZ
*/
package http.test;
import java.io.IOException;
import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
/**
* @Description:TE12.java
* @author NECSTHZ.zhaojianming
*/
public class TE12 {
/**
* @method main
* @param args
* @author zhaojianming
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
HttpClient client = new HttpClient();
client.getState().setCookiePolicy(CookiePolicy.COMPATIBILITY);
// client.getState().setCookiePolicy(1213321);
// 1
GetMethod authget = new GetMethod(
"http://172.28.140.113:8080/jsp-examples/security/protected/index.jsp");
try {
int i = client.executeMethod(authget);
} catch (HttpException httpe) {
httpe.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
}
// 2
NameValuePair[] data = new NameValuePair[2];
data[0] = new NameValuePair("j_username", "tomcat");
data[1] = new NameValuePair("j_password", "tomcat");
PostMethod authpost = new PostMethod(
"http://172.28.140.113:8080/jsp-examples/security/protected/j_security_check");
authpost.setRequestBody(data);
// 3
Header hCookie = authget.getResponseHeader("set-Cookie");
String cookie = hCookie.getValue();
Header hHost = authget.getRequestHeader("Host");
Header hUserAgent = authget.getRequestHeader("User-Agent");
if (hCookie == null || hHost == null || hUserAgent == null) {
return;
}
authpost.setRequestHeader("Cookie",cookie);
authpost.setRequestHeader(hHost);
authpost.setRequestHeader(hUserAgent);
authget.releaseConnection();
try {
client.executeMethod(authpost);
// 4
Header header = authpost.getResponseHeader("location");
// System.out.print(header.toString());
if (header != null) {
String newuri = header.getValue();
GetMethod redirect = new GetMethod(newuri);
client.executeMethod(redirect);
System.out.print(redirect.getResponseBodyAsString());
// process the content from the response
redirect.releaseConnection();
}
} catch (HttpException httpe) {
httpe.printStackTrace();
return;
} catch (IOException ioe) {
ioe.printStackTrace();
return;
}
authpost.releaseConnection();
}
}