透过httpclient 下载指定url内容是出现重复内容
发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
通过httpclient 下载指定url内容是出现重复内容
public void doRead() throws ClientProtocolException, IOException
{
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet("http://wenku.baidu.com/view/d6b2a9d2b14e852458fb5763.html");
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity entity = httpResponse.getEntity();
InputStream in = null;
FileOutputStream out = null;
if(httpResponse.getStatusLine().getStatusCode()==HttpStatus.SC_OK)
{
in = entity.getContent();
byte[] bytes = new byte[1024];
out = new FileOutputStream("E:/1/1.html");
//此处用于读取服务器响应的内容,问题也就在这儿,为什么从服务器下载的某个指定的网页中会有重复的内容,比如说某一行会重复一次
while(in.read(bytes)!=-1)
{
out.write(bytes,0,bytes.length);
out.flush();
}
out.close();
in.close();
httpGet.abort();
httpClient.getConnectionManager().shutdown();
}
}
利用httpclient爬去网页时,发现下载到的网页中会有很多重复的html代码,难道是因为 while(in.read(bytes)!=-1)
{
out.write(bytes,0,bytes.length);
out.flush();
}这个地方读取的有问题吗?后来发现采用EntityUtils.toByteArray(entity)的方法不会出项问题!但是菜鸟特变想知道上面的问题原因在哪里?
还有就是怎么控制编码的问题?
------解决方案--------------------
while(in.read(bytes)!=-1)
{
out.write(bytes,0,bytes.length);
out.flush();
}
这段代码有问题,改成
int len;
while((len=in.read(bytes))!=-1)
{
out.write(bytes,0,len);
out.flush();
}
//原因是 read()返回是当前读入的字节数,不一定每次都会读满的 具体看api
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
风生水起才知天高云淡,沧海横流方显英雄本色 百万商业圈云平台免费发布,几十万台电脑变成一台不是梦
百万商业圈分布式云平台功能...
-
登录问题
登录服务器为A 、代理服务器为B 、服务器资源为C.
http发送 验证成功 https请求资源
1.A<---...
-
集群的问题
看了网上很多文章,不是很理解怎么集群的,一下又memcache集群的,一下又mysql集群,还有什么nginx
。
具我了解nginx起的作用...
-
关于计费系统里面的预付费和后付费概念
由于本人刚接触计费系统,对里面的一些概念还有点模糊,特别是对预付费和后付费的理解,我的问...
-
很幽默的讲解六种Socket IO模型(转)
本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教...
-
数据库读写分离时候可能碰到的问题
数据库读写分离后,如果碰到一种插入操作,是需要对数据做检索后再进行的
例如用户注册,需要检测用...
-
奇怪啊,为何我的一个SWF浏览器缓存文件会被自动清除
我已经设置了这个文件的max-age是100天,也就是说,这个文件会在浏览器缓存里放10...
-
Myfaces日历控件无法弹出
代码如下:
<x:inputCalendar monthYearRowClass="yearMonthHeader"
weekRowClass="w...
-
到底什么才是Web Services
我曾经做过一个android的软件,当时的思想是这样的,我用SSH框架做了一个Web服务端,这个服务端暴露了很多的...
-
Web服务和文件服务分离后的问题
(A是Web服务器,B是文件服务器)
1 A网络映射B,访问A上传文件到B通过映射的路径实现。显示B中的...