返回信息流http://vip.book.sina.com.cn/iframe/chapter_img.php?book_id=182374&chapter_id=159021&k=book&n=1
这个是新浪读书的VIP下载的链接,直接在迅雷上新建任务,就能下载,文件名为chapter_img.php,90K左右,改成chapter_img.jpg 就能看到以图片形式的小说内容了。
我想做个java程序把链接对应的内容下载到本机,但是下载到本机只有20K,还不能看到小说的内容,下面是用的代码,请大家看看是什么原因:
public void saveToFile(String destUrl, String fileName) throws IOException {
FileOutputStream fos = null;
BufferedInputStream bis = null;
HttpURLConnection httpUrl = null;
URL url = null;
byte[] buf = new byte[BUFFER_SIZE];
int size = 0;
// 建立链接
url = new URL(destUrl);
httpUrl = (HttpURLConnection) url.openConnection();
// 连接指定的资源
httpUrl.connect();
// 获取网络输入流
bis = new BufferedInputStream(httpUrl.getInputStream());
// 建立文件
fos = new FileOutputStream(fileName);
if (this.DEBUG)
System.out.println("正在获取链接[" + destUrl + "]的内容...将其保存为文件["
+ fileName + "]");
// 保存文件
while ((size = bis.read(buf)) != -1)
fos.write(buf, 0, size);
fos.close();
bis.close();
httpUrl.disconnect();
}
这是一条镜像帖。来源:北邮人论坛 / java / #21554同步于 2012/2/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
大家帮忙看看为啥这个链接自己写的java程序不能和迅雷上下载的
huangdang
2012/2/28镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
方法本身没有问题
检查一下其他部分是否正确,比如登录验证,引错包,或者url、filepath等
【 在 huangdang (晃荡) 的大作中提到: 】
: http://vip.book.sina.com.cn/iframe/chapter_img.php?book_id=182374&chapter_id=159021&k=book&n=1
: 这个是新浪读书的VIP下载的链接,直接在迅雷上新建任务,就能下载,文件名为chapter_img.php,90K左右,改成chapter_img.jpg 就能看到以图片形式的小说内容了。
: 我想做个java程序把链接对应的内容下载到本机,但是下载到本机只有20K,还不能看到小说的内容,下面是用的代码,请大家看看是什么原因:
: ...................
谢谢哥们的建议。
“你确定用迅雷的时候是从新浪那里下载吗?” 这个怎么确定? 这个文章是付费的,除非迅雷自己先买到新浪的付费内容。
【 在 taotao1624 的大作中提到: 】
: 你确定用迅雷的时候是从新浪那里下载吗? 是否存在可能,迅雷在自己服务器上存了副本,而且新浪禁止以这种方法下载。
【 在 huangdang 的大作中提到: 】
: 谢谢哥们的建议。
: “你确定用迅雷的时候是从新浪那里下载吗?” 这个怎么确定? 这个文章是付费的,除非迅雷自己先买到新浪的付费内容。
:
个人感觉只要有迅雷用户下载过这个文件的话就行了。在新浪是付费的,但是在其他的地方不一定,只要有方法识别文件是否相同就好说了。这样的话一个文件其实存在网络的若干地方,只要下载的时候识别出这个文件,寻找到他之前存在过哪些地方,然后多点下载就好了。
以上只是个人想法,毕竟有这么多的用户用迅雷,他完全可以这么做,记得好像是去年迅雷的宣讲会上听到的,不太记得了。至于怎么看,不好说了,迅雷应该不会让你看到把。不知道能不能用抓包软件来看,没试过。