`
liuxueping1987
  • 浏览: 63794 次
  • 性别: 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();
	}
}

分享到:
评论

相关推荐

    java模拟ie 访问web

    本文将详细讲解如何使用Java模拟IE浏览器访问Web站点,主要涉及的知识点包括HTTP协议、HttpClient库以及相关的请求与响应处理。 首先,我们要理解HTTP协议的基本原理。HTTP(超文本传输协议)是互联网上应用最广泛...

    C#模拟IE浏览器,这是一个.net模拟IE浏览器的实例。可以学习。net的相应组建

    在.NET框架中,C#语言提供了丰富的库和组件来实现各种功能,其中之一就是模拟IE浏览器。这个实例项目是专门为了教学目的设计的,让你能够深入理解C#如何与Web交互,以及如何利用.NET的组件来实现类似浏览器的功能。...

    完美解决IE(IE6/IE7/IE8)不兼容HTML5

    5. **服务器端适配**: 在服务器端检测用户的浏览器类型和版本,然后根据结果提供不同的HTML或发送HTTP头部信息,引导IE使用兼容模式。 6. **polyfill服务**: 使用服务如Polyfill.io,它可以自动检测浏览器的特性,...

    网页模拟点击

    它提供了丰富的API,可以用于定位页面元素、发送键盘和鼠标事件、执行JavaScript等。例如,通过CSS选择器或XPath表达式找到特定按钮,然后调用click()方法实现模拟点击。 三、Puppeteer Puppeteer是Google Chrome...

    ie.rar_IE_java ie

    这个项目的重点可能是为了模拟IE浏览器的一些功能,尽管它可能并未涵盖所有功能,而且在视觉设计上可能较为粗糙,没有进行充分的美工优化。 在描述中提到,“模拟浏览器,功能只做了少数一些,未做美工,比较难看。...

    C# asp.net http HttpWebRequest模拟浏览器请求下载文件到本地.txt

    C# asp.net http HttpWebRequest模拟浏览器请求下载文件到本地

    websocket兼容IE678

    3. **WebSocket握手**:Flash中的代码模拟WebSocket的HTTP Upgrade请求,完成与服务器的握手过程。 4. **数据传输**:一旦连接建立,Flash对象将作为数据传输的桥梁,接收JavaScript传递过来的数据并发送到服务器,...

    websocket推送(兼容低版本的IE浏览器)

    Java WebSocket API允许开发者创建WebSocket服务器端点,处理连接建立、消息接收和发送以及连接关闭等各种事件。在本案例中,服务端可能使用了`javax.websocket`库,这是一个标准的Java WebSocket实现,兼容Tomcat 7...

    webSocketDemo2支持ie浏览器

    Flash的Socket API可以模拟WebSocket的双向通信,提供了一种在旧版IE浏览器上实现WebSocket功能的途径。因此,"WebSocketDemo"可能包含了一个使用Flash作为WebSocket代理的解决方案。 在"WebSocketDemo"项目中,...

    ie.rar_CSHARP IE

    类可用于发送HTTP请求,接收响应,这在与任何浏览器交互时都可能用到,包括IE。开发者可以使用它来获取网页内容,执行API调用等。 5. **自动化脚本**:C#与IE的结合还可能涉及到编写自动化脚本,例如批量下载、数据...

    pb 发送短信代码例子 学习

    描述中提到的“pb 模拟ie 发送 和 接收 ie 返回数据”暗示了我们可能会用到PB来模拟Internet Explorer(IE)浏览器的行为,可能是通过HTTP请求或Web服务接口与短信服务提供商进行通信。这种模拟可能涉及Web客户端...

    IE6中觉得PNG格式图片阴影的方法

    首先,我们需要在服务器上部署iepngfix.htc文件,因为它是通过HTTP头部Content-Type: text/x-component 发送的。然后,在CSS中,我们为需要修复的PNG元素添加一个类名,并指定iepngfix的行为。例如: ```css .ie6-...

    IETester浏览器调试工具IE调试工具

    5. **网络请求分析**:通过查看HTTP请求,开发者可以了解页面加载过程中发送和接收的数据,分析资源加载的问题。 6. **CSS兼容性**:对于样式表,IETester可以显示不同IE版本对CSS规则的支持情况,帮助开发者识别和...

    IE Developer Toolbar

    8. **模拟不同版本的IE**:IE Developer Toolbar支持模拟不同版本的Internet Explorer,以便开发者在不同时代的浏览器环境中测试网页兼容性。 **使用场景** - **网页开发**:在开发过程中,开发者可以利用此工具...

    websocket支持IE8专用配置文件,只要2分即可

    5. **监听事件**:添加监听器来处理连接状态变化、消息接收和发送等事件。 在实际应用中,需要注意以下几点: - **安全性**:由于`web-socket-js`依赖Flash,这可能带来安全风险,因为Flash Player存在一些已知的...

    java消息推送demo,自动选择websocket,兼容IE低版本

    Java消息推送技术在现代Web应用中扮演着重要角色,它使得服务器能够实时地向客户端发送数据,而无需客户端持续发起请求。WebSocket协议是实现双向通信的一种标准,它极大地提高了效率,降低了延迟。然而,WebSocket...

    javascript调试工具(IE集成版本)

    3. **网络请求**:查看页面加载时发送的HTTP请求。 4. **脚本调试**:通过脚本面板查看和调试JavaScript代码。 5. **性能分析**:分析页面加载速度和资源使用情况。 6. **模拟设备**:模拟不同的屏幕尺寸和分辨率...

    java做的IE浏览器.rar

    3. **网络编程**:Java的`java.net`包提供了进行网络通信的基础,包括HTTP协议的实现,这对于浏览器来说至关重要,因为它需要通过HTTP或HTTPS协议与Web服务器交互,获取和发送数据。 4. **HTML和JavaScript解析**:...

Global site tag (gtag.js) - Google Analytics