• httpunit使用示例


    import java.io.IOException;
    import java.net.MalformedURLException;
    
    import org.xml.sax.SAXException;
    
    import com.meterware.httpunit.GetMethodWebRequest;
    import com.meterware.httpunit.PostMethodWebRequest;
    import com.meterware.httpunit.WebConversation;
    import com.meterware.httpunit.WebForm;
    import com.meterware.httpunit.WebLink;
    import com.meterware.httpunit.WebRequest;
    import com.meterware.httpunit.WebResponse;
    import com.meterware.httpunit.WebTable;
    
    
    public class httpUnitTestSample {
    
    	/**
    	 * 页面内容测试
    	 * @throws MalformedURLException
    	 * @throws IOException
    	 * @throws SAXException
    	 */
    	public static void testGetHtmlContent() throws MalformedURLException,
    			IOException, SAXException {
    		System.out.println("直接获取网页内容:");
    		// 建立一个WebConversation实例
    		WebConversation wc = new WebConversation();
    		// 向指定的URL发出请求,获取响应
    		WebResponse wr = wc.getResponse("http://www.baidu.com");
    		// 用getText方法获取相应的全部内容
    		// 用System.out.println将获取的内容打印在控制台上
    		System.out.println(wr.getText());
    	}
    
    	/**
    	 * 用get方法获取页面内容
    	 * @throws MalformedURLException
    	 * @throws IOException
    	 * @throws SAXException
    	 */
    	public static void testGetMethod() throws MalformedURLException,
    			IOException, SAXException {
    		System.out.println("向服务器发送数据,然后获取网页内容:");
    		// 建立一个WebConversation实例
    		WebConversation wc = new WebConversation();
    		// 向指定的URL发出请求
    		WebRequest req = new GetMethodWebRequest(
    				"http://localhost:8080/test.html");
    		// 给请求加上参数
    		req.setParameter("query", "四氯化碳");
    		// 获取响应对象
    		WebResponse resp = wc.getResponse(req);
    
    		// 用getText方法获取相应的全部内容
    		// 用System.out.println将获取的内容打印在控制台上
    		System.out.println(resp.getText());
    
    	}
    
    	/**
    	 * 用post方法获取页面内容
    	 * @throws MalformedURLException
    	 * @throws IOException
    	 * @throws SAXException
    	 */
    	public static void testPostMethod() throws MalformedURLException,
    			IOException, SAXException {
    		System.out.println("使用Post方式向服务器发送数据,然后获取网页内容:");
    		// 建立一个WebConversation实例
    		WebConversation wc = new WebConversation();
    		// 向指定的URL发出请求
    		WebRequest req = new PostMethodWebRequest(
    				"http://localhost:8080/test.html");
    		// 给请求加上参数
    		req.setParameter("user_name", "test");
    		req.setParameter("password", "111111");
    		// 获取响应对象
    		WebResponse resp = wc.getResponse(req);
    
    		// 用getText方法获取相应的全部内容
    		// 用System.out.println将获取的内容打印在控制台上
    		System.out.println(resp.getText());
    	}
    
    	
    	/**
    	 * 获取页面链接并模拟点击
    	 * @throws MalformedURLException
    	 * @throws IOException
    	 * @throws SAXException
    	 */
    	public static void testClickLink() throws MalformedURLException,
    			IOException, SAXException {
    		System.out.println("获取页面中链接指向页面的内容:");
    		// 建立一个WebConversation实例
    		WebConversation wc = new WebConversation();
    		// 获取响应对象
    		WebResponse resp = wc.getResponse("http://www.265.com/");
    		// 获得页面链接对象
    		WebLink link = resp.getLinkWith("百度");
    		// 模拟用户单击事件
    		link.click();
    		// 获得当前的响应对象
    		WebResponse nextLink = wc.getCurrentPage();
    
    		// 用getText方法获取相应的全部内容
    		// 用System.out.println将获取的内容打印在控制台上
    		System.out.println(nextLink.getText());
    
    	}
    
    	/**
    	 * 获取页面内容的table内容
    	 * @throws MalformedURLException
    	 * @throws IOException
    	 * @throws SAXException
    	 */
    	public static void testTableContent() throws MalformedURLException,
    			IOException, SAXException {
    		System.out.println("获取页面中表格的内容:");
    		// 建立一个WebConversation实例
    		WebConversation wc = new WebConversation();
    		// 获取响应对象
    		WebResponse resp = wc
    				.getResponse("http://www.w3school.com.cn/tiy/loadtext.asp?f=html_table_test");
    
    		System.out.println(resp.getText());
    		// 获得对应的表格对象
    		WebTable webTable = resp.getTables()[0];
    		// 将表格对象的内容传递给字符串数组
    		String[][] datas = webTable.asText();
    		// 循环显示表格内容
    		int i = 0, j = 0;
    		int m = datas[0].length;
    		int n = datas.length;
    		while (i < n) {
    			j = 0;
    			while (j < m) {
    				System.out.println("表格中第" + (i + 1) + "行第" + (j + 1) + "列的内容是:"
    						+ datas[i][j]);
    				++j;
    			}
    			++i;
    		}
    	}
    
    	/**
    	 * 获取页面的表单控件内容
    	 * @throws MalformedURLException
    	 * @throws IOException
    	 * @throws SAXException
    	 */
    	public static void testHtmlContentForm() throws MalformedURLException,
    			IOException, SAXException {
    		System.out.println("获取页面中表单的内容:");
    		// 建立一个WebConversation实例
    		WebConversation wc = new WebConversation();
    		// 获取响应对象
    		WebResponse resp = wc.getResponse("http://www.w3school.com.cn/tiy/t.asp?f=html_table_test");
    
    		System.out.println(resp.getText());
    		// 获得对应的表单对象
    		WebForm webForm = resp.getForms()[0];
    		// 获得表单中所有控件的名字
    		String[] pNames = webForm.getParameterNames();
    		int i = 0;
    		int m = pNames.length;
    		// 循环显示表单中所有控件的内容
    		while (i < m) {
    			System.out.println("第" + (i + 1) + "个控件的名字是" + pNames[i] + ",里面的内容是"
    					+ (webForm.getParameterValues(pNames[i])));
    			++i;
    		}
    	}
    
    	public static void main(String[] args) throws MalformedURLException,
    			IOException, SAXException {
    		// testGetHtmlContent();
    		// testGetMethod();
    		// testPostMethod();
    		// testClickLink();
    		// testTableContent();
    		testHtmlContentForm();
    	}
    
    }
    

  • 相关阅读:
    Ubuntu 16.04 samba详细配置及使用(将linux中的共享目录设置成windows中的一个映射磁盘)
    在python上获得随机字符
    Internet Information Services (IIS)管理器 部署网站报错
    SQL Server 2019 安装过程中如何设置二进制
    W: http://archive.ubuntukylin.com:10006/ubuntukylin/dists/xenial/InRelease: Signature by key 6CE35A4EBAB676094476BE7CD259B7555E1D3C58 uses weak digest algorithm (SHA1)
    Django命令行相关命令 以及创建一个空白网页的步骤
    网络爬虫之定向爬虫:爬取当当网2015年图书销售排行榜信息(Crawler)
    Ubuntu 16.04 Django安装和配置
    问题记录2:TypeError: write() argument must be str, not bytes
    问题记录1:The VMware Authorization Service is not running.
  • 原文地址:https://www.cnblogs.com/secbook/p/2655193.html
Copyright © 2020-2023  润新知