`

htmlunit模拟sso登陆

    博客分类:
  • java
阅读更多
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());
		
	}
}


分享到:
评论
3 楼 asialee 2012-04-11  
就是根据contentType的不同会创建不同的Page
text/html HtmlPage
text/* TextPage
2 楼 asialee 2012-04-11  
jccmjl 写道
你好,我是htmlunit使用者,在使用中我遇见了一个问题 textpage 和htmlpage什么区别,在中我要做的就是根据一个请求返回一个结果...不知

道如何做!!!!朋友可以的话联系我下,我的QQ 是452276647,邮箱:jccmjl@163.com  万分感谢!!!

好的,我的qq: 327379252
1 楼 jccmjl 2012-04-11  
你好,我是htmlunit使用者,在使用中我遇见了一个问题 textpage 和htmlpage什么区别,在中我要做的就是根据一个请求返回一个结果...不知

道如何做!!!!朋友可以的话联系我下,我的QQ 是452276647,邮箱:jccmjl@163.com  万分感谢!!!

相关推荐

    htmlunit模拟cookie登录

    htmlunit 模拟cookie 存取 cookie值登录 如: wsyyuser.xywy.com Cookie c = new Cookie("wsyyuser.xywy.com", "PHPSESSID", Common.getValue("session_id") );

    JAVA使用HtmlUnit爬虫工具模拟登陆CSDN案例

    JAVA使用HtmlUnit爬虫工具模拟登陆CSDN案例 本文将讲解如何使用JAVA语言和HtmlUnit爬虫工具模拟登陆CSDN网站。HtmlUnit是一个基于JAVA的爬虫工具,能够模拟浏览器的行为,从而实现自动化的爬虫操作。 在本案例中,...

    htmlunit java版无界面浏览器 网页自动登录

    htmlunit java版无界面浏览器 实现网页自动登录利器 官方最新下载 htmlunit 是一款开源的java 页面分析工具,...项目可以模拟浏览器运行,被誉为java浏览器的开源实现。这个没有界面的浏览器,运行速度也是非常迅速的。

    Htmlunit2.23-bin.zip

    HTMLUnit是一个强大的Java库,它模拟了一个无头Web浏览器,主要用于自动化测试和网页抓取。在版本2.23的zip文件中,我们主要关注HTMLUnit的核心功能和它如何帮助开发者处理HTML内容。 HTMLUnit的核心是基于Jakarta ...

    htmlunit爬虫.rar

    HTMLUnit的核心功能在于其模拟了Web浏览器的行为,包括执行JavaScript、处理cookies、管理会话等。由于它是基于Java的,因此可以轻松集成到任何Java项目中,并且具备跨平台的特性。使用HTMLUnit,开发者可以编写代码...

    htmlunit依赖jar包

    HTMLUnit是一款功能强大的Java库,它模拟了一个无头Web浏览器,允许开发者在没有真实浏览器环境的情况下执行JavaScript,处理Ajax请求,以及与网页进行交互。这个库对于自动化测试、数据抓取和网页爬虫项目非常有用...

    传一个htmlunit依赖的jar包,官网所下

    HTMLUnit是一个Java库,它提供了一个无头浏览器的模拟,允许开发者在没有真实浏览器环境的情况下进行Web客户端测试和自动化。这个“htmlunit-2.25”压缩包包含的就是HTMLUnit库的版本2.25,是进行无头网页交互的关键...

    htmlunit-2.14

    4. **网络模拟**:HTMLUnit能够模拟HTTP请求和响应,包括GET、POST以及其他HTTP方法。这使得开发者可以控制网络交互,例如设置请求头、处理cookies、模拟不同的网络环境。 5. **异常处理**:在处理网页时,HTMLUnit...

    htmlunit 及其 依赖包

    HTMLUnit是一个功能强大的Java库,它模拟了一个无头Web浏览器,允许开发者进行自动化网页测试和网络爬虫工作。这个库的核心在于它能够解析HTML、执行JavaScript,并与网页上的元素进行交互,而无需真实地打开一个...

    htmlUnit所需jar包

    总之,"htmlUnit所需jar包"包含了运行和开发基于HTMLUnit的项目所需的所有必要组件,使得开发者能够在没有图形界面的情况下,模拟浏览器行为,执行自动化任务。通过理解这些jar包的功能和用途,开发者可以更有效地...

    htmlunit依赖的所有jar

    HTMLUnit是一个Java库,模拟一个无头Web浏览器,主要用于自动化测试和网页抓取。它能够解析HTML、执行JavaScript,并返回用户可以操作的DOM元素。在Java应用中使用HTMLUnit,通常需要依赖一系列的JAR(Java Archive...

    Htmlunit2.8开发文档

    HtmlUnit 是一个强大的Java库,它模拟了一个无头Web浏览器,允许开发者进行自动化测试和网页抓取。在HtmlUnit 2.8版本中,你可以利用它来执行JavaScript、处理Ajax请求,以及与网页上的各种元素交互,而无需实际运行...

    htmlunit-2.1.5源码

    HTMLUnit是一个Java库,它模拟了一个无头Web浏览器,用于自动化网页测试和抓取。它提供了JavaScript支持,能够处理AJAX请求,使开发者能够在没有实际图形界面的情况下与网页交互。这个"htmlunit-2.1.5源码"包包含了...

    htmlunit-2.19-bin

    HTMLUnit是一个基于Java的无头Web客户端库,它模拟了一个完整的浏览器,但不涉及实际的图形用户界面。这个“htmlunit-2.19-bin”压缩包包含了HTMLUnit的二进制版本,允许开发者在Java应用程序中进行网页自动化测试和...

    com.gargoylesoftware.htmlunit-2.29所需包

    综上所述,HTMLUnit是一个强大的Java爬虫工具,它提供了全面的Web页面模拟功能,适用于需要处理复杂动态内容的场景。使用HTMLUnit 2.29版本时,需确保开发环境满足Java 8或以上的要求,并正确管理和使用其依赖库。

    htmlunit-2.36和htmlunit-2.50,包括关联文件

    HTMLUnit是Java编程语言中的一款无头Web浏览器库,它模拟了浏览器的行为,但不涉及图形用户界面。这个工具主要用于自动化测试和网络爬虫,因为它能够解析HTML、执行JavaScript,并与网页上的各种元素进行交互。在...

    htmlunit最新版2.18含api文档

    使用htmlunit模拟浏览器所需要的jar包都在里面,下载好了,全部解压,全部导入进去就行了

    htmlunit基本jar包

    HTMLUnit是一个Java库,它提供了一个无头浏览器模拟器,用于自动化Web页面的测试和交互。这个"htmlunit基本jar包"包含了运行HTMLUnit所需的所有核心组件,无需通过Maven来管理和依赖。这意味着用户可以直接在项目中...

    通过htmlunit获取执行js代码后的html文档

    通过HTMLUnit,开发者可以编写程序来模拟用户在浏览器上的操作,如点击链接、填写表单、执行JavaScript等,而无需真正打开一个浏览器实例。 使用HTMLUnit获取执行JavaScript后的HTML文档,首先需要理解HTMLUnit的...

    htmlunit参考文档

    HTMLUnit是一款强大的Java库,它模拟了一个无头Web浏览器,主要用于自动化Web测试和网页抓取。这个参考文档是关于HTMLUnit的API详细说明,对于开发者来说是理解和使用HTMLUnit的重要资源。下面,我们将深入探讨...

Global site tag (gtag.js) - Google Analytics