找回密码
 加入
搜索
查看: 18664|回复: 5

[系统综合] [已解决]请教获取跳转网址的文件名

  [复制链接]
发表于 2013-8-27 00:12:33 | 显示全部楼层 |阅读模式
本帖最后由 kxing 于 2013-8-27 08:25 编辑

请教这类跳转网址能和IE那样获取到文件名吗?
http://www.xdowns.com/soft/xdown ... nid=49&id=63529
谢谢!
发表于 2013-8-27 02:38:46 | 显示全部楼层
回复 1# kxing
Global $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Option(0) = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ZHCN)"
$oHTTP.Option(4) = 13056 ;忽略错误标志
$oHTTP.Option(6) = False ;禁用重定向
$oHTTP.SetTimeouts(30000, 30000, 30000, 30000)

Local $sUrl, $sBody

$sUrl = "http://www.xdowns.com/soft/xdowns2009.asp?softid=60680&downid=49&id=63529"

$oHTTP.Open('GET', $sUrl, True)
$oHTTP.Send()
$sBody = waitResponse()
ConsoleWrite($sBody & @CRLF)

$sUrl = $oHTTP.getResponseHeader("Location")

Local $sName = StringTrimLeft($sUrl, StringInStr($sUrl, "/", 0, -1))

MsgBox(0, 0, "下载链:" & $sUrl & @CRLF & @CRLF & "文件名:" & $sName)


Func waitResponse($i_Time = -1, $b_Bin = False)
        Local $s_Header = ""
        
        If Not $oHTTP.WaitForResponse($i_Time) Then
                $oHTTP.Abort()
                Return SetError(1, 0, "")
        EndIf
        If $b_Bin Then Return $oHTTP.responseBody
        
        $s_Header = $oHTTP.GetResponseHeader("Content-Type")
        
        If StringInStr($s_Header, "gb2312") Or StringInStr($s_Header, "gbk") Then
                Return BinaryToString($oHTTP.responseBody, 1)
        Else
                Return BinaryToString($oHTTP.responseBody, 4)
        EndIf
EndFunc   ;==>waitResponse

评分

参与人数 1金钱 +30 贡献 +2 收起 理由
user3000 + 30 + 2 +++++

查看全部评分

 楼主| 发表于 2013-8-27 08:25:09 | 显示全部楼层
真乃高人啊,请问下有关于oHTTP的属性和方法的说明文档吗?
发表于 2013-8-27 20:52:03 | 显示全部楼层
回复 3# kxing

MSDN把 不理解的配合百度搜索下

http://msdn.microsoft.com/en-us/library/windows/desktop/aa384106(v=vs.85).aspx
发表于 2013-9-2 13:25:34 | 显示全部楼层
學習了~謝謝~很有用~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-17 13:54 , Processed in 0.080744 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表