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站点,主要涉及的知识点包括HTTP协议、HttpClient库以及相关的请求与响应处理。 首先,我们要理解HTTP协议的基本原理。HTTP(超文本传输协议)是互联网上应用最广泛...
在.NET框架中,C#语言提供了丰富的库和组件来实现各种功能,其中之一就是模拟IE浏览器。这个实例项目是专门为了教学目的设计的,让你能够深入理解C#如何与Web交互,以及如何利用.NET的组件来实现类似浏览器的功能。...
5. **服务器端适配**: 在服务器端检测用户的浏览器类型和版本,然后根据结果提供不同的HTML或发送HTTP头部信息,引导IE使用兼容模式。 6. **polyfill服务**: 使用服务如Polyfill.io,它可以自动检测浏览器的特性,...
它提供了丰富的API,可以用于定位页面元素、发送键盘和鼠标事件、执行JavaScript等。例如,通过CSS选择器或XPath表达式找到特定按钮,然后调用click()方法实现模拟点击。 三、Puppeteer Puppeteer是Google Chrome...
这个项目的重点可能是为了模拟IE浏览器的一些功能,尽管它可能并未涵盖所有功能,而且在视觉设计上可能较为粗糙,没有进行充分的美工优化。 在描述中提到,“模拟浏览器,功能只做了少数一些,未做美工,比较难看。...
C# asp.net http HttpWebRequest模拟浏览器请求下载文件到本地
3. **WebSocket握手**:Flash中的代码模拟WebSocket的HTTP Upgrade请求,完成与服务器的握手过程。 4. **数据传输**:一旦连接建立,Flash对象将作为数据传输的桥梁,接收JavaScript传递过来的数据并发送到服务器,...
Java WebSocket API允许开发者创建WebSocket服务器端点,处理连接建立、消息接收和发送以及连接关闭等各种事件。在本案例中,服务端可能使用了`javax.websocket`库,这是一个标准的Java WebSocket实现,兼容Tomcat 7...
Flash的Socket API可以模拟WebSocket的双向通信,提供了一种在旧版IE浏览器上实现WebSocket功能的途径。因此,"WebSocketDemo"可能包含了一个使用Flash作为WebSocket代理的解决方案。 在"WebSocketDemo"项目中,...
类可用于发送HTTP请求,接收响应,这在与任何浏览器交互时都可能用到,包括IE。开发者可以使用它来获取网页内容,执行API调用等。 5. **自动化脚本**:C#与IE的结合还可能涉及到编写自动化脚本,例如批量下载、数据...
描述中提到的“pb 模拟ie 发送 和 接收 ie 返回数据”暗示了我们可能会用到PB来模拟Internet Explorer(IE)浏览器的行为,可能是通过HTTP请求或Web服务接口与短信服务提供商进行通信。这种模拟可能涉及Web客户端...
首先,我们需要在服务器上部署iepngfix.htc文件,因为它是通过HTTP头部Content-Type: text/x-component 发送的。然后,在CSS中,我们为需要修复的PNG元素添加一个类名,并指定iepngfix的行为。例如: ```css .ie6-...
5. **网络请求分析**:通过查看HTTP请求,开发者可以了解页面加载过程中发送和接收的数据,分析资源加载的问题。 6. **CSS兼容性**:对于样式表,IETester可以显示不同IE版本对CSS规则的支持情况,帮助开发者识别和...
8. **模拟不同版本的IE**:IE Developer Toolbar支持模拟不同版本的Internet Explorer,以便开发者在不同时代的浏览器环境中测试网页兼容性。 **使用场景** - **网页开发**:在开发过程中,开发者可以利用此工具...
5. **监听事件**:添加监听器来处理连接状态变化、消息接收和发送等事件。 在实际应用中,需要注意以下几点: - **安全性**:由于`web-socket-js`依赖Flash,这可能带来安全风险,因为Flash Player存在一些已知的...
Java消息推送技术在现代Web应用中扮演着重要角色,它使得服务器能够实时地向客户端发送数据,而无需客户端持续发起请求。WebSocket协议是实现双向通信的一种标准,它极大地提高了效率,降低了延迟。然而,WebSocket...
3. **网络请求**:查看页面加载时发送的HTTP请求。 4. **脚本调试**:通过脚本面板查看和调试JavaScript代码。 5. **性能分析**:分析页面加载速度和资源使用情况。 6. **模拟设备**:模拟不同的屏幕尺寸和分辨率...
3. **网络编程**:Java的`java.net`包提供了进行网络通信的基础,包括HTTP协议的实现,这对于浏览器来说至关重要,因为它需要通过HTTP或HTTPS协议与Web服务器交互,获取和发送数据。 4. **HTML和JavaScript解析**:...