国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

獲取軟件下載的真實地址!再談獲取Response.redirect重定向的URL

2024-05-04 11:02:54
字體:
來源:轉載
供稿:網友

http://www.im286.com/viewthread.php?tid=1550010&extra=page%3D1

其實這個問題落伍談了n次了
其中care4也說了兩次所以如果你有問題最好先搜索一下 說不定問題早有人解決了
http://www.im286.com/viewthread. ... ;highlight=%2Bcare4
http://www.im286.com/viewthread. ... ;highlight=%2Bcare4
care4的代碼有一個小缺點 就是需要組件。
第一個是.net組件 二不是 但用組件始終不太方便有沒有asp直接獲取的方式呢

答案是有的
我寫的一個vb簡單的winsock獲取的代碼
http://www.im286.com/viewthread. ... t=Response.redirect


當時我說用asp好像不能獲得,那是當時沒有去csdn混去,現在搞定了

首先我們要了解為什么xmlhttp組件無法獲得這樣的跳轉真實地址
用Response.Redirect跳轉,PHP里面是Header("Location",$URL);
這兩種方式都是一樣的原理,就是在輸出的HTTP頭里面加上一個Location字段
同時把返回的HTTP狀態值設為302,瀏覽器就會認為當前請求的頁面已經
被移動到Location指定的路徑
那么為什么xmlhttp無法獲得呢?
原因很簡單
XMLHTTP組件在處理包含Location頭的302消息時太智能了,直接給跳轉到最后的頁面,也就是說~我們看不到中間的過程!比爾自作聰明阿 !

不過還好MSXML4里面提供了一個可用的新的組件:WinHttp.WinHttpRequest.5.1,這個也是MSXML4 XMLHTTP組件的核心。 WinHttp.WinHttpRequest有一個十分關鍵的屬性:Option,這個屬性的第六個索引就是指示是否自動跳轉,然后就可以輕松的使用XMLHTTP組件的getResponseHeader和getAllResponseHeaders方法來獲取返回的HTTP頭信息了。

好接下來就看代碼了
Dim oHttp
Set oHttp=Server.CreateObject("WinHttp.WinHttpRequest.5.1"
oHttp.Option(6)=0        '禁止自動Redirect,最關鍵的  剩下的就簡單讀取數據都估計大家都會
oHttp.SetTimeouts 5000,5000,30000,5000  '設置超時~和ServerXMLHTTP組件一樣
oHttp.Open "GET",sUrl,False       '以同步模式打開URL
If oHttp.Status<>200 And oHttp.Status<>302 Then
'oHttp.Status對應返回的HTTP狀態,如果是200,表示這個就是最終頁面,沒有Location跳轉
'如果是302,表示當前請求的URL已經被移動,需要根據HTTP頭來跳轉
'對于其他數值的狀態,基本上我們不要處理,但是你要處理也可以比如 440或者別的狀態你自己處理就可以了!
Else
   '在這里對返回的HTTP頭和文檔內容進行處理
End If

好了比較完整的代碼比較長
我傳了個到空間上自己看去
http://test.aymtv.com/url.asp
默認的輸入欄里的代碼是crsky的一個下載地址你可以測試一下就知道了
點查看源代碼就可以看見這個asp文件的源代碼!

一切搞定 over 繼續去csdn混分去了

完整代碼:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鄄城县| 杂多县| 应用必备| 南木林县| 林州市| 盐亭县| 延川县| 东方市| 额济纳旗| 株洲县| 衡水市| 泊头市| 剑川县| 德安县| 小金县| 堆龙德庆县| 乐陵市| 揭阳市| 娱乐| 华坪县| 长宁区| 阿勒泰市| 旬阳县| 景德镇市| 南皮县| 东丽区| 长寿区| 边坝县| 临海市| 广丰县| 芦溪县| 大余县| 辽宁省| 沙雅县| 桂平市| 开原市| 布尔津县| 汕头市| 鄄城县| 高邑县| 沿河|