import java.io.IOException;
import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
/**
* 通过程序登录获取MadeInChina的客户资料
*/
public class HttpclientLoginMadeInChina {
private static HttpClient client;// new httpclient
private static Cookie[] cookies;// new cookie
/**
* build httpClient and get cookies
*/
public static void buildClient() {
String loginUrl = "http://membercenter.made-in-china.com/logon.do?xcase=doLogon";
client = new HttpClient();
client.getHostConfiguration().setHost("http://www.made-in-china.com/", 80);
client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
PostMethod post = new PostMethod(loginUrl);
// NameValuePair for login
NameValuePair url = new NameValuePair("url", loginUrl);
NameValuePair ie = new NameValuePair("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows 2003)");
NameValuePair redirect_url = new NameValuePair("rembemberLoginNameFlag", "1");
NameValuePair baseNextPage = new NameValuePair("baseNextPage", "");
NameValuePair username = new NameValuePair("logonInfo.logUserName", "jameswsz");
NameValuePair password = new NameValuePair("logonInfo.logPassword", "654321");
post.setRequestBody(new NameValuePair[] { ie, url, redirect_url, username, password, baseNextPage });
try {
client.executeMethod(post);
} catch (HttpException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
cookies = client.getState().getCookies();// get cookies
post.releaseConnection();
}
/**
* get content from url
*/
public static String getContent(String url) {
String responseString = "";
GetMethod get = new GetMethod(url);
get.setRequestHeader("Cookie", cookies.toString());
try {
client.executeMethod(get);
responseString = new String(get.getResponseBodyAsString().getBytes("UTF-8"), "UTF-8");
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return responseString;
}
public static void main(String[] args) {
HttpclientLoginMadeInChina.buildClient();
System.out.println(HttpclientLoginMadeInChina.getContent("http://www.made-in-china.com/showroom/everflourish"));
}
}