怎么做才能取出正确的URL路径(100分)

  • 主题发起人 主题发起人 xzhifei
  • 开始时间 开始时间
X

xzhifei

Unregistered / Unconfirmed
GUEST, unregistred user!
要怎么做才能从下面的URL中取出正确的路径,以便下载dx90_redist.exe这个文件呢:
http://download.pchome.net/php/download2.php?sid=4544&url=/system/patch/dx90_redist.exe&svr=4
回答:
1、取得http://download.pchome.net/php/download2.php?sid=4544&url=/system/patch/dx90_redist.exe&svr=4
中url后面的字符串/system/patch/dx90_redist.exe。
取得http://download.pchome.net/php/download2.php
2、使用函数InternetCombineUrl(一定要uses WinInet)
就可以获得真实的文件地址了。
3、具体的如何下载还要依靠sid,svr等值。

[blue]请问函数InternetCombineUrl具体怎么用呢[/blue]
 
我的做法:
URL的编码标准:
protocol://username:password@domainname:port/path?urlencode_param#bookmark
翻译一下:
协议://用户名:密码@域名或地址:端口/路径?查询参数#书签
根据几个特殊的位置,可以分成几部分
://之前的是协议
然后,如果有#,那么之后的为书签
如果有?那么之后的为查询参数
://和?之间如果有/, 那么最左边的一个左侧为 用户名:密码@域名或地址:端口
右侧为路径
对于 用户名:密码@域名或地址:端口
@之前的部分为 用户名:密码 :之前为用户名, 之后为密码
@之后如果有 : 则后面的为端口

按照上面的解析思路可以得到url的各个部分
而你需要的部分是查询参数中的url字段
用ExtractStrings可以把查询参数加入字符串列表
然后StringList.Values['url'] 就可以得到你需要的东西了

InternetCombineUrl将一个绝对的url地址和一个相对的url组合为一个绝对的url

老兄要写下载工具吗?
 
我是要写一个下载的东西,不过不是工具

不知道你那样做是否可以
 
我就是用这种方法解析URL
组合函数也可以自己写,只要能解析出来
 
后退
顶部