package cn.wanghaomiao.main;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;
public class HttpRequest {
/**
* 向指定URL发送GET方法的请求
*
* @param url
* 发送请求的URL
* @param param
* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return URL 所代表远程资源的响应结果
*/
public static String sendGet(String url, String param) {
String result = "";
BufferedReader in = null;
try {
String urlNameString = url + "?" + param;
URL realUrl = new URL(urlNameString);
// 打开和URL之间的连接
URLConnection connection = realUrl.openConnection();
// 设置通用的请求属性
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 建立实际的连接
connection.connect();
// 获取所有响应头字段
Map<String, List<String>> map = connection.getHeaderFields();
// 遍历所有的响应头字段
for (String key : map.keySet()) {
System.out.println(key + "--->" + map.get(key));
}
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送GET请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
}
/**
* 向指定 URL 发送POST方法的请求
*
* @param url
* 发送请求的 URL
* @param param
* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return 所代表远程资源的响应结果
*/
public static String sendPost(String url, String param) {
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数
out.print(param);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!"+e);
e.printStackTrace();
}
//使用finally块来关闭输出流、输入流
finally{
try{
if(out!=null){
out.close();
}
if(in!=null){
in.close();
}
}
catch(IOException ex){
ex.printStackTrace();
}
}
return result;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
SeimiCrawler-test.zip (97个子文件)
SeimiCrawler-test
.project 1KB
WebContent
WEB-INF
lib
META-INF
MANIFEST.MF 39B
src
test
java
main
resources
seimi-mybatis.xml 1KB
seimi-jade.xml 799B
config
db_demo.sql 272B
seimi.properties 359B
mybatis-config.xml 298B
seimi.xml 664B
logback.xml 830B
java
cn
wanghaomiao
crawlers
IntercepterDemo.java 1KB
Basic.java 2KB
JDWalker.java 3KB
BasicCacc2.java 2KB
UseDelay.java 1KB
DatabaseStoreDemo.java 2KB
DefaultRedisQueueEG.java 2KB
UseCookie.java 2KB
DynamicUserAgent2.java 2KB
SeimiAgentDemo.java 2KB
SelfConfigRedisQueueEG.java 1KB
MutiPageNewsCrawler.java 2KB
BasicCacc.java 2KB
UseBeanResolver.java 1KB
UseProxy.java 2KB
StoreInFile.java 2KB
DatabaseMybatisDemo.java 2KB
UseDynamicProxy.java 2KB
BasicWithScheduler.java 2KB
DynamicUserAgent.java 2KB
BasicCacc3.java 2KB
queues
MySelfRedisQueueImpl.java 4KB
model
Blog.java 1KB
BlogContent.java 1KB
dao
StoreToDbDAO.java 484B
mybatis
MybatisStoreDAO.java 531B
util
GetAllPageLink.java 2KB
Xml2Collection.java 1KB
interceptors
DemoInterceptor.java 1KB
main
Boot.java 469B
StartWorkers.java 268B
TestHttp.java 513B
HttpRequest.java 4KB
annotations
DoLog.java 273B
target
classes
cn
wanghaomiao
crawlers
SelfConfigRedisQueueEG.class 2KB
UseBeanResolver.class 2KB
DatabaseMybatisDemo.class 3KB
UseDynamicProxy.class 3KB
SeimiAgentDemo.class 3KB
JDWalker.class 4KB
BasicCacc3.class 2KB
UseProxy.class 2KB
DefaultRedisQueueEG.class 2KB
BasicWithScheduler.class 3KB
UseCookie.class 3KB
DynamicUserAgent.class 3KB
BasicCacc2.class 3KB
UseDelay.class 2KB
MutiPageNewsCrawler.class 3KB
IntercepterDemo.class 2KB
StoreInFile.class 3KB
Basic.class 3KB
DynamicUserAgent2.class 3KB
DatabaseStoreDemo.class 3KB
BasicCacc.class 3KB
queues
MySelfRedisQueueImpl.class 5KB
model
Blog.class 2KB
BlogContent.class 2KB
dao
StoreToDbDAO.class 469B
mybatis
MybatisStoreDAO.class 588B
util
GetAllPageLink.class 3KB
Xml2Collection.class 3KB
interceptors
DemoInterceptor.class 2KB
main
TestHttp.class 808B
Boot.class 572B
HttpRequest.class 4KB
StartWorkers.class 575B
annotations
DoLog.class 442B
seimi-mybatis.xml 1KB
seimi-jade.xml 799B
config
seimi.properties 359B
mybatis-config.xml 298B
META-INF
MANIFEST.MF 109B
maven
org.sonatype.oss
SeimiCrawler-demo
pom.properties 245B
pom.xml 4KB
seimi.xml 664B
logback.xml 830B
test-classes
.settings
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.common.project.facet.core.xml 206B
org.eclipse.m2e.core.prefs 90B
org.eclipse.jdt.core.prefs 430B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.core.resources.prefs 155B
org.eclipse.wst.common.component 597B
.jsdtscope 567B
pom.xml 4KB
.classpath 1KB
webSiteSearch.xml 2KB
共 97 条
- 1
资源评论
Learn_ZhangK
- 粉丝: 4
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功