2013-12-12 3 views
8

ich versuchte LINK FINDER und mit Blick auf 2 AusgabeAsynchronous Httprequest mit WinHttp.WinHttpRequest.5.1 in ASP

Ausgabe 1 (Gelöst) :: Kann nicht bekommen URL umgeleitet Seite

zu machen Dies wurdeREFERNCE LINK unter Verwendung WinHttp.WinHttpRequest.5.1 aufgelöst

Ausgabe 2 (Unsolved) :: nicht in der Lage WinHttp.WinHttpRequ zu verwenden est.5.1 Objekt EVENT Oder keinen Rückruf asynchrone Anforderung

Synchron-Anforderungscode

Set req = CreateObject("WinHttp.WinHttpRequest.5.1") 
req.open "GET", url, FALSE 
req.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
req.send PostData 

Dies funktioniert gut, aber wenn ich multuple Anfrage, dann seine Einnahme zu viel Zeit.

Ich habe folgende versucht Asynchronous Anforderungscode aber erhalten Fehler

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 

-Code 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 

FEHLER - Der Remote-Server-Computer existiert nicht oder nicht verfügbar ist : 'CreateObject'

-Code 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 

Fehler: Objekt nicht unterstützt diese Eigenschaft oder Methode: ‚req.OnResponseFinished

-Code 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 

In Microsoft-Dokumentation haben sie WinHttp.WinHttpRequest.5.1 haben 4 Ereignis verwiesen.

  1. OnError
  2. OnResponseDataAvailable
  3. OnResponseFinished
  4. OnResponseStart

aber ich habe nicht bekam Beispiel dafür, wie dieses Ereignis zu verwenden, noch ich bin in der Lage, diese Veranstaltung zu verwenden, in ASP.

Hoffnung für schnelle Antwort ...

Antwort

2

haben Sie versucht, eine Sub anstelle einer Funktion für das "req_OnReadyStateChange" zu verwenden?

Übrigens benutze ich das MSXML2.ServerXMLHTTP Objekt und das funktioniert gut. Gibt es einen Grund, warum Sie diese WinHttp API verwenden?

Beispiel mit MSXML2.ServerXMLHTTP:

<% 
dim url : url = "http://localhost" 
dim XmlHttp : set XmlHttp = server.createobject("MSXML2.ServerXMLHTTP") 
XmlHttp.onreadystatechange = getRef("doHttpReadyStateChange") 
XmlHttp.open "GET", url, true 
XmlHttp.send() 

sub doHttpReadyStateChange 
    response.write XmlHttp.readyState 
    response.write "<br>" 

    select case XmlHttp.readyState 
     case 0 'UNINITIALIZED 

     case 1 'LOADING 

     case 2 'LOADED 

     case 3 'INTERACTIVE 

     case 4 'COMPLETED 
      response.write "Done" 
    end select 
end sub 
%> 
+0

Ja, ich brauche endgültige URL nach Umleitung thats, warum ich WinHttp.WinHttpRequest.5.1 verwende. für weitere Informationen können Sie http://stackoverflow.com/questions/20358654/serverxmlhttp-request-returing-dat-but-not-returning-url-of-final-page-after-30 –

+0

@Dr_Dang ok und Haben Sie versucht, eine Sub-Funktion anstelle einer Funktion für das OnReadyStateChange-Ereignis zu verwenden? – ulluoink