我正在尝试制作链接查找器并遇到了两个问题
问题1 (已解决) :: 无法获取重定向页面的URL
这个问题通过使用 WinHttp.WinHttpRequest.5.1参考链接得以解决。
问题2 (未解决) :: 无法使用 WinHttp.WinHttpRequest.5.1 对象事件 或没有回调到异步请求
同步请求代码
Set req = CreateObject("WinHttp.WinHttpRequest.5.1")
req.open "GET", url, FALSE
req.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
req.send PostData
这个工作没问题,但如果我有多个请求,那么它需要太长时间。
我尝试了以下异步请求代码,但是出现错误。
Set req = CreateObject("WinHttp.WinHttpRequest.5.1")
req.open "GET", url, TRUE
req.OnReadyStateChange = GetRef("req_OnReadyStateChange")
req.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
req.send PostData
Function req_OnReadyStateChange
' do something
End Function
代码 1
Set req = CreateObject("WinHttp.WinHttpRequest.5.1","req_")
req.open "GET", url, TRUE
Function req__OnResponseFinished
' do something
End Function
req.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
req.send PostData
错误 - 远程服务器计算机不存在或不可用:'CreateObject'
代码 2
Set req = CreateObject("WinHttp.WinHttpRequest.5.1")
req.open "GET", url, TRUE
req.OnResponseFinished = GetRef("req_OnResponseFinished")
Function req_OnResponseFinished
' do something
End Function
req.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
req.send PostData
错误:对象不支持此属性或方法:'req.OnResponseFinished'
代码3
Set req = CreateObject("WinHttp.WinHttpRequest.5.1")
req.open "GET", url, TRUE
req.OnReadyStateChange = GetRef("req_OnReadyStateChange")
req.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
req.send PostData
Function req_OnReadyStateChange
' do something
End Function
在微软文档中,他们提到WinHttp.WinHttpRequest.5.1有4个事件。
- OnError
- OnResponseDataAvailable(当接收到来自服务器的数据时)
- OnResponseFinished(当响应完成并且所有数据可用时)
- OnResponseStart(当接收到响应数据时)
但我没有找到如何使用这些事件的示例,也无法在ASP中使用这些事件。
希望能快速回复...