我正在尝试在ASP中制作LINK FINDER应用程序 它的工作分为5步
Send http request to server to parsed link
我能够做到第4步,但是在第5步面对挑战
我正在获得3种类型的链接
1.)绝对链接:http://www.foo.com/file.asp
2.)根目录的链接,需要域名,例如/folder2/file2.asp
3.)相对链接: ../ file3.asp
当我请求 www.foo.com 时, 301重定向到 www.foo.com/folder3/folder3/file3.asp
我正在获取重定向网页的html内容,但是没有重定向网址,也无法检查第三类链接
使用以下代码
Set ServerXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0") ServerXmlHttp.open "GET", "http://www.foo.com" ServerXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" ServerXmlHttp.send PostData If ServerXmlHttp.status = 200 Then //My CODE
希望快速回应...... 或者任何其他关于asp,vb.net
中的链接查找器的想法答案 0 :(得分:3)
它不属于ServerXMLHTTP功能
相反,您必须使用IWinHttpRequest或其他能够管理重定向的第三方组件
在以下示例中,即使重定向,req.Option(WHR_URL)
也会返回当前网址
默认情况下,选项req.option(WHR_EnableRedirects)
为True
,如ServerXMLHTTP
所以,我添加了一行注释,显示如何禁用重定向。
Const WHR_URL = 1
Const WHR_EnableRedirects = 6
'Enum constants are listed at http://msdn.microsoft.com/en-us/library/windows/desktop/aa384108(v=vs.85).aspx
Dim req
Set req = Server.CreateObject("WinHttp.WinHttpRequest.5.1")
'req.Option(WHR_EnableRedirects) = False 'don't follow the redirects
req.open "GET", "http://www.foo.com", False
req.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
req.send PostData
If req.Status = 200 Then
Response.Write "Last URL : " & req.Option(WHR_URL)
End If