httpclient访问需要登录才能访问的数据

package com.grkj.modules.tree.web.excel;

import java.io.IOException;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.PostMethod;

public class HttpClientTutorial {

	//登录URL
	private final static String URL1 = "xxx.com/username=xxx&password=xxx;
	//要访问数据
	private final static String URL2 = "xxx.com/getjession";

	public static void main(String args[]) {
		/* 创建HttpClient实例 */
		HttpClient client = new HttpClient();
		/* 创建一个post方法 */
		PostMethod postMethod = new PostMethod(URL1);
		PostMethod postMethod2 = new PostMethod(URL2);
		
		
		/* 执行post方法 */
		try {
			int statusCode = client.executeMethod(postMethod);
			int statusCode2 = client.executeMethod(postMethod2);//注意client 要和登录人client 就同一个,这是保持session的关键

			if (statusCode2 != HttpStatus.SC_OK) {
				System.err.println("Method failed: "
						+ postMethod2.getStatusLine());
			}

			/* 获得返回的结果 */
			byte[] responseBody = postMethod2.getResponseBody();

			System.out.println(new String(responseBody));

		} catch (HttpException e) {
			System.err.println("Fatal protocol violation: " + e.getMessage());
			e.printStackTrace();
		} catch (IOException e) {
			System.err.println("Fatal transport error: " + e.getMessage());
			e.printStackTrace();
		} finally {
			/* Release the connection. */
			postMethod.releaseConnection();

		}
	}
}

猜你喜欢

转载自wuzijingaip.iteye.com/blog/2205599