`
liuxueping1987
  • 浏览: 63046 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

模拟ie发送http消息

阅读更多
package cn.com.surekam;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpAccessJDBCClient {

	private static String JDBC_QUERY = "http://localhost:8081/jdbc/?method=query&";
	/**
	 * 发送http请求
	 * @throws IOException
	 */
	public static void sendHttp() throws IOException {
		URL url = new URL(
				"http://localhost:8080/ImitateIE/ie.do?password=33");// 设置要访问的链接
		HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // 获取HttpURLConnection的对象
		conn.setDoOutput(true); // 默认值为false,不能传递参数
		conn.setRequestMethod("POST"); // 设置请求方式
		conn.setRequestProperty("referer", "http://www.sina.com/index.html");
		OutputStream out = conn.getOutputStream();
		out.write("name=aaaa".getBytes());
		// 向服务器发送一个值为"aaaa"的name参数,如果conn的DoOutput属性值为false,此处将抛出异常
		conn.getResponseCode(); // 获取响应状态码
		System.out.println("sendHttp:conn.getResponseCode():"+conn.getResponseCode());
	}

	/**
	 * 发送http请求,接受http请求
	 * @throws IOException
	 */
	public static void sendAndReadHttp() throws IOException {
		URL url = new URL(
				"http://localhost:8080/ImitateIE/ie.do?");// 设置要访问的链接
		HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // 获取HttpURLConnection的对象
		conn.setDoOutput(true); // 默认值为false,不能传递参数
		conn.setRequestMethod("POST"); // 设置请求方式
		conn.setRequestProperty("referer", "http://www.sina.com/index.html");
		OutputStream out = conn.getOutputStream();
		out.write("name=name&password=password".getBytes());
		// 向服务器发送一个值为"aaaa"的name参数,如果conn的DoOutput属性值为false,此处将抛出异常
		conn.getResponseCode(); // 获取响应状态码
		System.out.println("sendHttp:conn.getResponseCode():"+conn.getResponseCode());
		InputStream in = conn.getInputStream(); // 获取一个和服务器返回的内容相关联的流
		try {
			int len = 0;
			byte[] buffer = new byte[1024];
			while ((len = in.read(buffer)) > 0) {
				System.out.println(new String(buffer, 0, len)); // 输出到控制台
			}
		} finally {
			if (in != null)
				try {
					in.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
		}
	}

	/**
	 * 读取http请求的信息
	 * @throws IOException
	 */
	public static void readHttp() throws IOException {
		URL url = new URL(
				"http://localhost:8080/ImitateIE/ie.do"); // 设置请求的链接
		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
		System.out.println(conn.getResponseCode()); // 查看响应状态码
		System.out.println(conn.getHeaderField("Content-Length")); // 响应文本内容的长度
		InputStream in = conn.getInputStream(); // 获取一个和服务器返回的内容相关联的流
		try {
			int len = 0;
			byte[] buffer = new byte[1024];
			while ((len = in.read(buffer)) > 0) {
				System.out.println(new String(buffer, 0, len)); // 输出到控制台
			}
		} finally {
			if (in != null)
				try {
					in.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
		}
	}
	
	/**
	 * 发送http请求
	 * @throws IOException
	 */
	public static void sendHttpToJDBC() throws IOException {
		URL url = new URL("http://localhost:8080/jdbc/?method=query&appId=998");// 设置要访问的链接
		HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // 获取HttpURLConnection的对象
		conn.setDoOutput(true); // 默认值为false,不能传递参数
		conn.setRequestMethod("POST"); // 设置请求方式
		conn.setRequestProperty("referer", "http://www.sina.com/index.html");
		OutputStream out = conn.getOutputStream();
		out.write("appId=998".getBytes());
		// 向服务器发送一个值为"aaaa"的name参数,如果conn的DoOutput属性值为false,此处将抛出异常
		conn.getResponseCode(); // 获取响应状态码
		System.out.println("conn.getResponseCode():"+conn.getResponseCode());
		System.out.println("conn.getResponseCode():"+conn.getContent());
		
		InputStream in = conn.getInputStream(); // 获取一个和服务器返回的内容相关联的流
		try {
			int len = 0;
			byte[] buffer = new byte[1024];
			while ((len = in.read(buffer)) > 0) {
				System.out.println(new String(buffer, 0, len)); // 输出到控制台
			}
		} finally {
			if (in != null)
				try {
					in.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
		}
	}

	/**
	 * 读取http请求的信息
	 * @throws IOException
	 */
	public static void readHttpFromJDBC() throws IOException {
		StringBuffer bufUrl = new StringBuffer(JDBC_QUERY);
		bufUrl.append("appId=998&appName=用户验证系统");
//		URL url = new URL(bufUrl.toString()); // 设置请求的链接

		URL url = new URL(new String(bufUrl.toString().getBytes("UTF-8"),"UTF-8")); // 设置请求的链接
		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//		conn.setDoOutput(true); // 默认值为false,不能传递参数
//		OutputStream out = conn.getOutputStream();
//		out.write("name=aaaa".getBytes());
		System.out.println(conn.getResponseCode()); // 查看响应状态码
		System.out.println(conn.getHeaderField("Content-Length")); // 响应文本内容的长度
		System.out.println(conn.getContentEncoding()); // 响应文本内容的编码
		System.out.println(conn.getConnectTimeout()+" content:"+conn.getContent().toString()); // 响应时间
		System.out.println("url:"+url.toString());
		System.out.println("url:"+url.toString());

		InputStream in = conn.getInputStream(); // 获取一个和服务器返回的内容相关联的流
		try {
			int len = 0;
			byte[] buffer = new byte[1024];
			while ((len = in.read(buffer)) > 0) {
				System.out.println(new String(buffer, 0, len)); // 输出到控制台
			}
		} finally {
			if (in != null)
				try {
					in.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
		}
	}
	public static void main(String[] args) throws IOException {
//		sendHttp();
//		readHttp();
		sendAndReadHttp();
//		readHttpFromJDBC();
//		sendHttpToJDBC();
	}
}

分享到:
评论

相关推荐

    不懂html也来学VBA网抓(xmlhttpwinhttp+fiddler).pdf

    用xmlhttp/winhttp 模拟向服务器发送请求,接收服务器返回的数据。 优点:效率高,基本无兼容性问题。 缺点:需要借助如fiddler 的工具来模拟http 请求。 2、IE/webbrowser 法: 创建IE 控件或webbrowser 控件,...

    关于C#.net winform程序验证moss的集成身份认证实例

    使操作和用户体验非常不方便,研究了好久没有找到好的方法,最后终于让我踏破铁鞋总结出了下面的方法,原理我个人的理解应该是模拟IE发送验证的消息进行验证,可以通过实现登录的问题。 注:需要添加名称为Microsoft...

    siege————网络压力测试工具

    /usr/local/siege/bin/siege -c 50 -r 100 http://www.baidu.com/s?wd=siege&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&rsv_sug3=4&rsv_sug=2&rsv_sug1=4&rsv_sug4=60 50个用户 重复100次 发送POST...

    VB网络编程实例

    ◆ 123.htm 自动更新工作站的应用程序 ◆ 124.htm 自己的IE——用VB制作器 ◆ 125.htm HTTP协议(学习笔记) ◆ 126.htm HTTP协议四--关于Chunked编码 ◆ 127.htm IE器完全控制 ◆ ...

    零基础写python爬虫之使用urllib2组件抓取网页内容

    类似于使用程序模拟IE浏览器的功能,把URL作为HTTP请求的内容发送到服务器端, 然后读取服务器端的响应资源。 在Python中,我们使用urllib2这个组件来抓取网页。 urllib2是Python的一个获取URLs(Uniform Resource ...

    易语言540个易模块

    发送消息_全选插入 防破解 仿XP窗口2.0 仿XP界面3.0特别版模块 3.0 分辨率 分割无逢文本模块 复制目录模块 G 改变系统菜单1.0改进版 改变系统菜单1.0简单版 改变显示器状态 高级表格到excel 高级液晶数字1.1...

    2021年计算机应用基础(二)作业4.docx

    限制内网对外部的访问权限 题目14 用IE浏览器浏览网页,在地址栏中输入网址时,通常可以省略________。 a. http:// b. news:// c. ftp:// d. mailto:// 题目15 TCP/IP分层模型从下到上,依次为_________。 a. 物理...

    计算机应用基础(二)作业4(同名20889).docx

    限制内网对外部的访问权限 题目14 用IE浏览器浏览网页,在地址栏中输入网址时,通常可以省略________。 a. http:// b. news:// c. ftp:// d. mailto:// 题目15 TCP/IP分层模型从下到上,依次为_________。 a. 物理...

    计算机应用基础(二)作业4.docx

    限制内网对外部的访问权限 题目14 用IE浏览器浏览网页,在地址栏中输入网址时,通常可以省略________。 a. http:// b. news:// c. ftp:// d. mailto:// 题目15 TCP/IP分层模型从下到上,依次为_________。 a. 物理...

    计算机应用基础(二)作业4(同名20889)(1).docx

    限制内网对外部的访问权限 题目14 用IE浏览器浏览网页,在地址栏中输入网址时,通常可以省略________。 a. http:// b. news:// c. ftp:// d. mailto:// 题目15 TCP/IP分层模型从下到上,依次为_________。 a. 物理...

    790个易模块打包下载-2

    发送消息_全选插入.ec 防破解.ec 仿XP窗口2.0.ec 仿XP界面3.0特别版模块 3.0.ec 分辨率.ec 分割无逢文本模块.ec 复制目录模块.ec 改变显示器状态.ec 改变系统菜单1.0改进版.ec 改变系统菜单1.0简单版.ec ...

    790个易模块-3

    发送消息_全选插入.ec 防破解.ec 仿XP窗口2.0.ec 仿XP界面3.0特别版模块 3.0.ec 分辨率.ec 分割无逢文本模块.ec 复制目录模块.ec 改变显示器状态.ec 改变系统菜单1.0改进版.ec 改变系统菜单1.0简单版.ec ...

    790个易模块打包

    发送消息_全选插入.ec 防破解.ec 仿XP窗口2.0.ec 仿XP界面3.0特别版模块 3.0.ec 分辨率.ec 分割无逢文本模块.ec 复制目录模块.ec 改变显示器状态.ec 改变系统菜单1.0改进版.ec 改变系统菜单1.0简单版.ec ...

    易语言模块大全(401个)

    发送消息_全选插入.ec 数据库到超级列表框.ec 取功能键状态.ec 高级液晶数字1.1.ec 窗口动画效果模块 V1.0.ec 超级列表框模糊查找.ec 个性信息框1.1.ec 创建多级目录.ec 互联网扩展模块1.1.ec 调用PowerDll功能的...

    Python模仿POST提交HTTP数据及使用Cookie值的方法

    如果不使用Cookie, 发送HTTP POST非常简单: 复制代码 代码如下:import urllib2, urllib data = {‘name’ : ‘www’, ‘password’ : ‘123456’} f = urllib2.urlopen(  url = ‘//www.jb51.net/’,  data = ...

    易语言模块914个

    发送消息_全选插入.ec 取CPU特征字.ec 取DOS执行结果.ec 取Excel表名列表模块1.0.ec 取IE地址栏.ec 取IP及地理位置模块.ec 取IP地址.ec 取mdb表名.ec 取mp3信息模块.ec 取功能键状态.ec 取十进制.ec 取...

    JavaScript王者归来part.1 总数2

     13.1.1 消息与事件响应   13.1.2 浏览器的事件驱动机制   13.2 基本事件处理   13.2.1 事件和事件类型   13.2.2 事件的绑定   13.2.3 直接调用事件处理函数   13.2.4 事件处理函数的返回值   13.2.5...

Global site tag (gtag.js) - Google Analytics