使用HttpClient获取需要登录的网页内容

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"));
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值