阿蜜果
不骄,不矜,勤工,好学,才是好女子
你所浪费的今天,是昨天死去的人奢望的明天。
你所厌恶的现在,是未来的你回不去的曾经。
BlogJava
首页
新随笔
新文章
联系
聚合
管理
posts - 297, comments - 1618, trackbacks - 0
HttpURLConnection使用中遇到的一个问题
今天跟TiGERTiAN谈到HttpURLConnection使用中的一个问题,就是当连接到的那个地址重定向到另一个地址时,怎么样获得那个重定向后的地址,弄了一下,找出了方法,结果起先我们两个都没想到,嘿嘿,在此记录一下。
HttpURLConnection是基于HTTP协议的,其底层通过socket通信实现。
下面来看一个例子:
import
java.net.HttpURLConnection;
import
java.net.URL;
import
java.io.BufferedReader;
import
java.io.InputStreamReader;
/** */
/**
* 网页阅读器.
*
@author
<a href="mailto:xiexingxing1121@126.com">AmigoXie</a>
* Creation date: 2007-10-9 - 上午11:47:26
*/
public
class
PageReader
{
//
连接对象
private
static
HttpURLConnection conn;
/** */
/**
* 根据url连接某地址,并返回返回码.
* 返回码说明:
* 0~200为正常情况,其中200为OK
* 其余都为错误的情况,具体请参见w3
*
@param
urlStr 需连接的url字符串
*/
private
int
connect(String urlStr)
throws
Exception
{
URL url
=
new
URL(urlStr);
conn
=
(HttpURLConnection) url.openConnection();
System.out.println(
"
返回码:
"
+
conn.getResponseCode());
//
如果定向的地址经过重定向,
//
那么conn.getURL().toString()显示的是重定向后的地址
System.out.println(conn.getURL().toString());
return
conn.getResponseCode();
}
/** */
/**
* 读取网页的内容.
*
@return
返回网页的内容
*/
private
String readContents()
throws
Exception
{
BufferedReader in
=
null
;
StringBuffer sb
=
new
StringBuffer();
in
=
new
BufferedReader(
new
InputStreamReader(conn
.getInputStream()));
String inputLine;
while
((inputLine
=
in.readLine())
!=
null
)
{
sb.append(inputLine);
sb.append(
"
\n
"
);
}
return
sb.toString();
}
/** */
/**
* 中断连接.
*/
private
void
disconnect()
{
conn.disconnect();
}
/** */
/**
* 测试方法
*
@param
args
*
@throws
Exception
*/
public
static
void
main(String[] args)
throws
Exception
{
PageReader reader
=
new
PageReader();
String url
=
"
http://hexapixel.com/download.php?file=com.hexapixel.widgets.ribbon.alphatest.src.jar
"
;
reader.connect(url);
String content
=
reader.readContents();
System.out.println(
"
网页内容:
"
+
content);
reader.disconnect();
}
}
呵呵,http://hexapixel.com/download.php?file=com.hexapixel.widgets.ribbon.alphatest.src.jar
这个地址会进行重定向,定向为:
http://hexapixel.com/files/com.hexapixel.widgets.ribbon.alphatest.src.jar
TiGERTiAN想要获得的就是后面那个地址,运行该程序后,大家可以看到,System.out.println(conn.getURL().toString());打出的就是这个地址,可惜TiGERTiAN和我开始都没想到,看来是要多试试的。大家可以将那个url地址改成
http://www.blogjava.net/amigoxie
试试,这个程序实现的是一个很简单的网页阅读器呵!
posted on 2007-10-09 12:36
阿蜜果
阅读(6085)
评论(10)
编辑
收藏
所属分类:
Java
FeedBack:
#
re: HttpURLConnection使用中遇到的一个问题
2007-10-09 13:03 |
千里冰封
呵呵,搞起这个来了,有意思
回复
更多评论
#
re: HttpURLConnection使用中遇到的一个问题
2007-10-09 13:07 |
阿蜜果
@千里冰封
是有个朋友用这个时发现的一个问题
:)
回复
更多评论
#
re: HttpURLConnection使用中遇到的一个问题
2007-10-09 13:17 |
dennis
HttpURLConnection默认是允许重定向,你可以关闭
conn.setFollowRedirects(false);
回复
更多评论
#
re: HttpURLConnection使用中遇到的一个问题
2007-10-09 18:25 |
TiGERTiAN
嘿嘿。。。多亏Amigo姐姐。。不然要烦死我了。。。
回复
更多评论
#
re: HttpURLConnection使用中遇到的一个问题
2007-10-10 16:28 |
阿蜜果
@ dennis
谢谢指点
@ TiGERTiAN
同学习嘛
回复
更多评论
#
re: HttpURLConnection使用中遇到的一个问题[未登录]
2007-10-10 23:10 |
xmlspy
直接使用commons-httpclient-3.1就可以了,比这个方便多了
回复
更多评论
#
re: HttpURLConnection使用中遇到的一个问题
2007-10-11 08:48 |
阿蜜果
@xmlspy
恩,commons-httpclient-3.1包还不错,不过我那个朋友没有用那个包。它直接用HttpURLConnection时出现的这个问题
回复
更多评论
#
re: HttpURLConnection使用中遇到的一个问题[未登录]
2007-10-17 20:41 |
yoyo
code review:
1)conn.getResponseCode(); 重构为: int resultCode = conn.getResponseCode();
2) StringBuffer sb = new StringBuffer(); 重构为:
StringBuffer sb = new StringBuffer(conn
.getInputStream().length);
回复
更多评论
#
re: HttpURLConnection使用中遇到的一个问题[未登录]
2007-10-18 08:35 |
阿蜜果
@yoyo
thank you very much
:)
回复
更多评论
#
re: HttpURLConnection使用中遇到的一个问题
2008-09-11 18:08 |
hi
urlconnection 能否将xml字符串发送到php端?我的qq 510823368
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
关系型数据的分布式处理系统MyCAT(1)—概述和基本使用教程
常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
常用加密算法的Java实现总结(一)——单向加密算法MD5和SHA
基于注解的Spring MVC+Hibernate简单入门
新作《Java面试关键与综合软件项目开发全程实战》
蜜果私塾:在系统中使用内存对象缓存系统(下篇)
蜜果私塾:在系统中使用内存对象缓存系统(上篇)
蜜果私塾:数据同步给第三方系统的方案探索
蜜果私塾:Java Web系统常用的第三方接口
Java发HTTP POST请求(内容为xml格式)
<
2007年10月
>
日
一
二
三
四
五
六
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
生活将我们磨圆,是为了让我们滚得更远——“圆”来如此。
我的作品:
玩转Axure RP
(2015年12月出版)
Power Designer系统分析与建模实战
(2015年7月出版)
Struts2+Hibernate3+Spring2
(2010年5月出版)
留言簿
(262)
给我留言
查看公开留言
查看私人留言
随笔分类
Ajax(3)
Ant(1)
Auto Code(4)
Cewolf
CMMI(1)
CSS(2)
CVS(1)
database(15)
Design Pattern(11)
Eclipse BIRT(1)
EJB
extremecomponents(1)
GIS(2)
Hibernate(8)
iBATIS(2)
IDE(1)
Inno Setup(2)
IT评论(2)
Java(36)
Javascript(32)
JBoss(1)
JFreeChart(3)
JFreeReport(3)
JSF
Linux(3)
MySql(11)
Open Source(4)
Oracle(5)
Other(13)
Spring(12)
Sql Server(1)
Struts(7)
Struts2(8)
Tomcat
UML
Web(8)
Web Service(3)
Workflow
产品原型设计(8)
似水流年(13)
协议(12)
原创小说(1)
技术评论
架构师之路(12)
电信知识(3)
网络通信相关(11)
职场感悟(6)
解决方案(12)
项目管理(8)
随笔档案
2016年3月 (2)
2015年11月 (1)
2015年9月 (1)
2015年6月 (3)
2015年5月 (4)
2014年12月 (2)
2014年7月 (1)
2014年6月 (1)
2014年5月 (2)
2014年1月 (2)
2013年10月 (1)
2013年8月 (1)
2013年7月 (1)
2013年4月 (1)
2013年2月 (1)
2012年11月 (2)
2012年10月 (1)
2012年1月 (1)
2011年11月 (8)
2011年10月 (4)
2011年9月 (1)
2011年8月 (2)
2011年7月 (5)
2011年2月 (2)
2011年1月 (1)
2010年12月 (3)
2010年11月 (9)
2010年9月 (1)
2010年7月 (2)
2010年6月 (2)
2010年5月 (5)
2010年4月 (2)
2009年12月 (4)
2009年11月 (2)
2009年10月 (1)
2009年9月 (3)
2009年8月 (5)
2009年7月 (5)
2009年5月 (1)
2008年10月 (3)
2008年9月 (3)
2008年8月 (1)
2008年6月 (2)
2008年5月 (3)
2008年4月 (2)
2008年2月 (2)
2008年1月 (11)
2007年12月 (9)
2007年11月 (7)
2007年10月 (9)
2007年9月 (12)
2007年8月 (24)
2007年7月 (10)
2007年6月 (2)
2007年5月 (3)
2007年4月 (18)
2007年3月 (24)
2007年2月 (24)
文章分类
喜爱歌词(12)
生活点滴(3)
芝麻粒知识(8)
英语(1)
相册
java学习相关
other
产品经理相关
图书相关
工具相关
日历
架构师相关
设计模式相关
贴图
走走拍拍
饭团
关注blog
BeanSoft
JAVA-HE
kenzhang
即兴的灵感
坏男孩
孙卫琴
施伟
蚂蚁
银河使者
鼠标
积分与排名
积分 - 2286424
排名 - 3
最新评论
1. re: 新书推荐:《Power Designer系统分析与建模实战》
你好。买了书,麻烦把书中的样例工程文件发给我。非常感谢。
我的邮箱:wen027andy@163.com
--文良
2. re: 新书推荐:《Power Designer系统分析与建模实战》
@智禄
谢谢指出,下次改版修正:)
--阿蜜果
3. re: 新书推荐:《Power Designer系统分析与建模实战》
6.1.3 9.存储函数
存储函数与存储函数类似,……
此处应该是:存储函数与存储过程类似,……
我买的是多看上的电子版,请修改
--智禄
4. re: 新书推荐:《Power Designer系统分析与建模实战》
您好,今天买了您的这本书,为了更好的学习,麻烦将书中的样例工程文件发给我,万分感谢,感谢作者写出这么好的书,我特别需要,祝大卖~~
yaozhilu@foxmail.com
--智禄
5. re: 新书推荐:《Power Designer系统分析与建模实战》
您好,书不错,已经买了,麻烦发套样例工程吧,最好详细点的,万分感激!
jackylee365@163.com
--李成龙
阅读排行榜
1. 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES(143666)
2. 用Ant实现Java项目的自动构建和部署(123950)
3. 异常备忘:java.lang.UnsupportedClassVersionError: Bad version number in .class file(113772)
4. Java代码规范、格式化和checkstyle检查配置文档(71771)
5. 常用加密算法的Java实现总结(一)——单向加密算法MD5和SHA(62340)
6. 通用权限管理系统设计篇(三)——概要设计说明书(61705)
7. 使用XFire+Spring构建Web Service(一)——helloWorld篇(53600)
8. 基于注解的Spring MVC+Hibernate简单入门(52556)
9. 在阿里云Linux服务器上安装MySQL(49585)
10. 关系型数据的分布式处理系统MyCAT(1)—概述和基本使用教程(47734)
评论排行榜
1. 使用XFire+Spring构建Web Service(二)(102)
2. 使用XFire+Spring构建Web Service(一)——helloWorld篇(70)
3. 通用权限管理系统设计篇(三)——概要设计说明书(64)
4. 异常备忘:java.lang.UnsupportedClassVersionError: Bad version number in .class file(54)
5. 通用权限管理设计篇(二)——数据库设计(40)