package com.isoftstone.core.base;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Map;
import com.isoftstone.constant.DataUtil;
public class HttpHostConnection {
/**
* 采用POST进行发送数据,然后接收到的字符串返回
* @param url 发送的URL地址
* @param postData 发送的数据,采用map进行封装
* @param encoding 接收的数据,采用什么类型进行接收,如"GBK" or "UTF-8"
* @return
*/
public String sendPostData(String url, Map<String, String> map,String encoding) {
String data = null;
try {
URL dataUrl = new URL(url);
HttpURLConnection con = (HttpURLConnection) dataUrl
.openConnection();
//设置连接的头部信息
con.setRequestProperty("accept", "*/*");
con.setRequestProperty("connection", "Keep-Alive");
con.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
//得到发送的数据
String post = DataUtil.getDataBySendData(map);
// 进行发送数据
sendConnectinData(con, post);
// 进行接收数据
data = getConnectionData(con, encoding);
con.disconnect();
} catch (Exception ex) {
ex.printStackTrace();
}
return data;
}
/**
* 采用GET进行发送数据,然后接收到的字符串返回
* @param url 发送的URL地址
* @param postData 发送的数据,采用map进行封装,这里使用get发送,是明文发送
* @param encoding 接收的数据,采用什么类型进行接收,如"GBK" or "UTF-8"
* @return
*/
public String sendGetData(String url, Map<String, String> map, String encoding) {
String data = null;
try {
// 对URL进行拼装
url += "?" + DataUtil.getDataBySendData(map);
//创建连接
URL dataUrl = new URL(url);
HttpURLConnection con = (HttpURLConnection) dataUrl
.openConnection();
//创建头部信息
con.setRequestProperty("accept", "*/*");
con.setRequestProperty("connection", "Keep-Alive");
con.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
// 直接进行接收数据
data = getConnectionData(con, encoding);
con.disconnect();
} catch (Exception ex) {
ex.printStackTrace();
}
return data;
}
/**
* 获取某一连接的数据,不需要进行发送数据
*
* @param url
* 需要返回的url地址
* @return
*/
public String getHostData(String url,String encoding) {
String data = null;
try {
URL dataUrl = new URL(url);
HttpURLConnection con = (HttpURLConnection) dataUrl
.openConnection();
con.setRequestProperty("accept", "*/*");
con.setRequestProperty("connection", "Keep-Alive");
con.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
// 进行接收数据
data = getConnectionData(con, encoding);
} catch (Exception ex) {
ex.printStackTrace();
}
return data;
}
/**
* 进行发送数据,根据获取到的连接对象进行发送数据
* @param con 连接对象
* @param postData 发送的数据
* @throws Exception
*/
protected void sendConnectinData(HttpURLConnection con, String postData)
throws Exception {
con.setRequestMethod("POST");
con.setDoOutput(true);
con.setDoInput(true);
// 进行发送数据
OutputStream os = con.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
dos.write(postData.getBytes());
dos.flush();
// 发送完成关闭连接
dos.close();
}
/**
* 根据连接获取到连接中的数据
* @param con 连接对象
* @param encoding 接收的形式,采用什么类型进行接收数据
* @return 成功得到的数据
* @throws Exception
*/
protected String getConnectionData(HttpURLConnection con,String encoding) throws Exception {
String str = "";
// 直接进行获取数据
InputStreamReader isr = new InputStreamReader(con.getInputStream(),encoding);
BufferedReader br = new BufferedReader(isr);
String temp = null;
while ((temp = br.readLine()) != null) {
if(temp.equals("")){
str += "\r\n";
}else{
str += temp;
}
}
con.disconnect();
return str;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
这个项目包含了网络抓包以及网络发包。采用的java的httpurlconnection方式实现。 并将post及get方法进行了封装,能够比较简单的调用。这里发出我自己写的源码。 在文件里面,数据的抓取为正则表达式方式抓取数据 实现的方式有。 1.根据文件中出现的字符进行抓取。 2。可以抓取前后2端的中间数据 3。可以抓取前后(不包括前端和后端的数据)的中间的数据。 还有,懒的说了。上源码。
资源推荐
资源详情
资源评论
收起资源包目录
WebPage.rar (52个子文件)
WebPage
.project 383B
.svn
tmp
props
prop-base
text-base
props
all-wcprops 298B
entries 534B
prop-base
text-base
.project.svn-base 383B
.classpath.svn-base 301B
src
.svn
tmp
props
prop-base
text-base
props
all-wcprops 90B
entries 220B
prop-base
text-base
com
isoftstone
.svn
tmp
props
prop-base
text-base
props
all-wcprops 105B
entries 262B
prop-base
text-base
constant
.svn
tmp
props
prop-base
text-base
props
all-wcprops 257B
entries 439B
prop-base
text-base
DataUtil.java.svn-base 1KB
DataUtil.java 1KB
core
WebPage.java 2KB
WebPageCore.java 3KB
.svn
tmp
props
prop-base
text-base
props
all-wcprops 392B
entries 551B
prop-base
text-base
WebPage.java.svn-base 2KB
WebPageCore.java.svn-base 3KB
base
HttpHostConnection.java 4KB
.svn
tmp
props
prop-base
text-base
props
all-wcprops 437B
entries 624B
prop-base
text-base
HttpHostConnection.java.svn-base 4KB
PatternAnalysis.java.svn-base 4KB
SaveImage.java 831B
PatternAnalysis.java 4KB
bean
Nature.java 1KB
.svn
tmp
props
prop-base
text-base
props
all-wcprops 526B
entries 836B
prop-base
text-base
WebPageVo.java.svn-base 133B
Nature.java.svn-base 1KB
MinElement.java.svn-base 670B
MinElement.java 670B
WebPageVo.java 133B
.svn
tmp
props
prop-base
text-base
props
all-wcprops 94B
entries 231B
prop-base
text-base
.settings
.svn
tmp
props
prop-base
text-base
props
all-wcprops 246B
entries 379B
prop-base
text-base
org.eclipse.jdt.core.prefs.svn-base 629B
org.eclipse.jdt.core.prefs 629B
.classpath 301B
bin
.svn
tmp
props
prop-base
text-base
props
all-wcprops 90B
entries 210B
prop-base
text-base
com
isoftstone
constant
DataUtil.class 2KB
core
WebPage.class 2KB
base
HttpHostConnection.class 4KB
SaveImage.class 2KB
PatternAnalysis.class 3KB
WebPageCore.class 2KB
bean
WebPageVo.class 292B
Nature.class 2KB
MinElement.class 929B
共 52 条
- 1
tanxinyu10
- 粉丝: 3
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页