2010-04-14

比如有这样一个地址:

http://www.vckbase.com/tools/downtools.asp?id=209

用下载工具打开时,能够知道其真实的下载地址和下载名称

请问用java怎么能获取到真实的下载地址和名称呢?

我试了使用java.net.HttpURLConnection类,获取到了以下文件头信息

============getHeaderField()===============

openConnection.getContentLength()=3383

Date=Wed, 14 Apr 2010 08:39:00 GMT

Content-Length=3383

Expires=null

Last-Modified=null

Accept-Ranges=null

Connection=null

Content-Type=text/html

Server=Microsoft-IIS/6.0

Cache-Control=private

ETag=null

Location=null

openConnection.getURL().getFile()=/tools/viewtools.asp?id=209

openConnection.getURL().getQuery()=id=209

openConnection.getURL().getUserInfo()=null

openConnection.getURL().getPath()=/tools/viewtools.asp

openConnection.getURL().getProtocol()=http

openConnection.getURL().getAuthority()=www.vckbase.com

openConnection.getURL().getRef()=null

openConnection.getURL().toExternalForm()=http://www.vckbase.com/tools/viewtools.asp?id=209

===========================================

输出的信息中都没有真实的下载地址,请问如何能获得到呢?那些下载工具(flashget、迅雷等)又是如何做到的呢?

----------------------------

LZ举这个例子http://www.vckbase.com/tools/viewtools.asp?id=209 我用了浏览器打开是个网页。如果真有下载。我的迅雷会弹出下载对话框的。针对你所说的用java解析下载文件地址和文件名。看这个地址:http://41.dc.ftn.qq.com/ftn_handler/741dd3c731a10fb49152e35da5ded5c32dab9907ef047317d91110099c32042bc40c20588a80612d45c01d5cd92588abe9b520e05d45838b61642af532b31cb2/%E7%94%B5%E5%BD%B1%E5%8F%91%E8%A1%8C%E7%BD%91.City.Under.Siege.2010.DVDSCR.....avi?k=57643

用URLDecoder这个类来解析下载链接就会得到:http://41.dc.ftn.qq.com/ftn_handler/741dd3c731a10fb49152e35da5ded5c32dab9907ef047317d91110099c32042bc40c20588a80612d45c01d5cd92588abe9b520e05d45838b61642af532b31cb2/电影发行网.City.Under.Siege.2010.DVDSCR.....avi?k=57643

这里的k=57643就应该是服务器里对应的影片名《周星驰莫少聪经典大片《龙凤茶楼》DVD中字.RMVB》

这就像我们删除WEB程序的一条数据时。看到的只是http://fd.ds.w/wef?id=1 而实际删除的是id=1所对应的数据迅雷里面的下载链接是将下载路径通过某种编码方式编码的。我们一般看到的只是一连串的字符。

你点击用迅雷下载的文件右击其属性就会看到起真实的下载链接和文件名。

获取文件名:添加常用文件的扩展名到一个数组中。通过文件扩展名来匹配连接。再截取匹配扩展名前面的第一个"."和"/"之间的字符串就是文件名。

至于迅雷等这些下载软件是怎么知道下载地址和下载文件名。我想只需将网络资源数据库与迅雷服务器之间有联结就可以获取。只是我的个人想法,希望能帮到你。

--------------------------

这是URLDecoder的用法:

String fileRealPath = URLDecoder.decode("http://41.dc.ftn.qq.com/ftn_handler/741dd3c731a10fb49152e35da5ded5c32dab9907ef047317d91110099c32042bc40c20588a80612d45c01d5cd92588abe9b520e05d45838b61642af532b31cb2/%E7%94%B5%E5%BD%B1%E5%8F%91%E8%A1%8C%E7%BD%91.City.Under.Siege.2010.DVDSCR.....avi?k=57643","UTF-8");

System.out.println(fileRealPath);

java获取gbk文件名 linux_java获取真实的下载地址和下载文件名相关推荐

  1. java旧版下载地址_Java下载 - 最新版、历史版本的官方下载地址

    Java下载 - 最新版.历史版本的官方下载地址 2015-07-31·WeaponX 4114 次浏览 ## 最新版下载 ### 最新版Java下载地址 [http://www.oracle.com ...

  2. java最新下载地址 jdk下载地址

    JDK下载地址: 授人以鱼不如授人以渔~ #oracle官网: #英文 https://www.oracle.com/index.html #中文 https://www.oracle.com/cn/ ...

  3. android mat下载地址,MatLog下载-MatLog(Log获取)下载v1.2.3 安卓版-西西软件下载

    MatLog帮助你查看你APP运行的日志,从日志当中更好的找出APP所出现问题的具体地方,如果你是普通用户的话那么这款软件则可以更好地帮助你反馈APP所存在的问题,感兴趣的话就快来下载这款MatLog ...

  4. python获取当前服务器ip_Python实现获取域名所用服务器的真实IP

    本来是要写个程序用的,没写完不写了,这一部分就贴出来吧 验证域名和IP class JianKong(): '''查询IDC信息,封ip和过白名单''' def __init__(self): pas ...

  5. 签到功能设计(含每日签到、固定时段签到、定位并签到模块)-spring Boot版本java web项目,附源码下载地址

    一.签到类型 每日签到:每日开放签到,时间记录为:年.月.日. 固定时段签到:每日固定时段签到,时间记录为:年.月.日.时.分.秒. 核心问题:判断用户签到时间是否在规定的时间段内. 定位并签到:每日 ...

  6. Java开发工具下载地址

    Java SE(Oracle JDK) 下载地址 Oracle JDK8 IntelliJ IDEA各版本下载地址 Maven下载地址 MySQL社区版下载地址

  7. Java开发常用软件下载地址合集

    文章目录 1.JDK下载地址 2.Maven下载地址 1.JDK下载地址 JDK下载需要登陆Oracle官网去下载 https://www.oracle.com/cn/java/technologie ...

  8. Java中获取GBK编码汉字的拼音首字母(包括生僻字)

    Java中获取GBK编码汉字的拼音首字母(包括生僻字) 前言 代码 结果 前言 网上关于Java中获取汉字的拼音首字母的方法很多,但大多基于GB2312的汉字所属编码位置判断方法,现有一种基于GBK编 ...

  9. java当前类路径_java获取当前类的绝对路径

    另,Class类还有一个getResourceAsStream方法,记得以前有个项目要读取在同一个包内的一个xml,就用的这个. 1.如何获得当前文件路径 常用: (1).Test.class.get ...

最新文章

  1. java实验报告二_Java实验报告(实验二)
  2. 查看电脑电池损耗的命令
  3. 表现层登录的处理逻辑及代码实现
  4. SAP UI5 初学者教程之二十六 - OData 服务配合 Mock 服务器的使用步骤详解试读版
  5. python中在同一个位置输出数据
  6. 地图距离算法_ORB-SLAM3 单目地图初始化(终结篇)
  7. -组件基础-局部组件 // 局部组件的简写
  8. mpvue中使用小程序云开发总结
  9. 计算机网络试题及答案(史上最全)
  10. 主流的虚拟化软件和他们各自的特点
  11. 退欧令英国科技业措手不及,可能不再享受多项利好政策
  12. RCWL-0516微波雷达感应开关 人体感应传感器,迷你多普勒雷达
  13. (C语言)图书管理系统(程序设计)
  14. @Windows server 2022安装使用(Workstation)
  15. 手机cpu性能天梯图2022 手机cpu性能排行2022 手机cpu哪个好
  16. Springboot整合JPA多数据源(Oracle+Mysql)
  17. 【AtCoder】【模拟】【模型转化】Camel and Oases(AGC012)
  18. STM32CubeMX系列|ADC模数转换
  19. MATLAB实现CRC校验码的计算
  20. Improved Consistency Regularization for GANs

热门文章

  1. 【尚硅谷】数据库DQL学习
  2. 隐藏任务栏后任务栏出不来怎么办?任务栏快捷键
  3. Windows上的字符转换之CP_ACP和CP_OEMCP
  4. 当代画家扬笛的画——水墨人物画《爱1》赏析
  5. 电涡流传感器330703-00-05-10-02-00本特利
  6. 53岁周鸿祎考上清华博士;图灵奖得主杨立昆炮轰ChatGPT:五年内就没人用了;Red Hat恪守对开源的承诺|极客头条...
  7. HMS Core助力宝宝巴士为全球开发者展现高品质儿童数字内容
  8. 2019年春节期间所看电影的短评
  9. 单线程照样飞起 | redis字典快速映射+hash釜底抽薪+渐进式rehash
  10. Java 飞机射击小游戏