htmlunit模拟sso登陆

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
import com.gargoylesoftware.htmlunit.HttpMethod;
import com.gargoylesoftware.htmlunit.TextPage;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.WebRequest;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
import com.gargoylesoftware.htmlunit.util.NameValuePair;

public class SSO1 {
	public static void main(String[] args)
			throws FailingHttpStatusCodeException, MalformedURLException,
			IOException {
		// 创建浏览器,可以选择IE、FF等等
		WebClient client = new WebClient(BrowserVersion.FIREFOX_3_6);

		// 获取某网站页面
		URL url = new URL("http://xxxxxx.com:8082/rest/tickets");
		WebRequest webRequest = new WebRequest(url, HttpMethod.POST);
		List<NameValuePair> reqParam = new ArrayList<NameValuePair>();

		reqParam.add(new NameValuePair("username", "xxxx"));
		reqParam.add(new NameValuePair("password", "xxxx"));

		webRequest.setRequestParameters(reqParam);
		HtmlPage mypage = (HtmlPage) client.getPage(webRequest);
		mypage.getElementByName("service").setAttribute("value",
				"http://zzzzz.com/bbbb/index.action");

		HtmlForm form = mypage.getForms().get(0);
		TextPage page = ((HtmlSubmitInput) form.getElementsByAttribute("input",
				"type", "submit").get(0)).click();
		
		String ticket = page.getContent();
		
		url = new URL("http://zzzzz.com/bbbb/index.action");
		webRequest = new WebRequest(url, HttpMethod.POST);
		
		reqParam = new ArrayList<NameValuePair>();
		reqParam.add(new NameValuePair("ticket", ticket));
		webRequest.setRequestParameters(reqParam);

		mypage = (HtmlPage) client.getPage(webRequest);
		
		System.out.println(mypage.asXml());
		
	}
}


你可能感兴趣的:(html unit)