Lavora con WinHttpRequest.ResponseStream (relative a IStream) in Classic ASP?
-
25-10-2019 - |
Domanda
C'è un modo di lavorare con il ResponseStream
proprietà di < a href = "http://msdn.microsoft.com/en-us/library/aa384106.aspx" rel = "nofollow"> WinHttp.WinHttpRequest.5.1
in VBScript / ASP? Almeno la IStream
interfaccia (a cui è legato ResponseStream
) è integrato in ASP in una certa misura.
In alternativa è che il limite di ciò che si può raggiungere in scrittura? che richiede di rotolare il proprio componente COM, se si vuole andare oltre?
<html><body><h1>WinHttp</h1>
<%
Dim req, url, o
Set req = CreateObject( "WinHttp.WinHttpRequest.5.1" )
url = "http://www.google.de"
req.Open "GET", url, False
req.Send
Response.Write "<p>Hier kommt <code>" & url & "</code> :</p>"
Response.Write "<pre>"
Response.Write req.Status & " " & req.StatusText & VbNewLine
Response.Write req.GetAllResponseHeaders
Response.Write "</pre>"
' Response.Write Mid( req.ResponseText, InStr( req.ResponseText, "<div" ) )
' Set o = req.ResponseStream
' o = req.ResponseStream
' Same result for Write and BinaryWrite:
' VarType = 13, TypeName = Unknown
' ASP 0106 : 80020005; Typkonflikt; Unbehandelter Datentyp
' o = req.ResponseStream
' o = req.ResponseBody ' mit BinaryWrite
o = req.ResponseText ' mit Write
Response.Write "<p><code>IsObject " & IsObject(o) & "</code></p>"
Response.Write "<p><code>IsNull " & IsNull(o) & "</code></p>"
Response.Write "<p><code>VarType " & VarType(o)
Response.Write " " & TypeName(o) & "</code></p>"
Response.Write o
' Response.BinaryWrite o
%>
Si noti che so di poter utilizzare sia req.ResponseText
o req.ResponseBody
. L'interesse è nel sapere se si può andare oltre nello script utilizzando roba che è documentato solo per C, ma forse (speculando) accessibile agli script. Io non sono informati circa COM.
Soluzione
Non c'è niente che puoi fare con un IStream direttamente nel codice di script. Tutto quello che possa fare è passare a un oggetto COM che potrebbe usarlo.
L'IStream è molto estraneo a Vbscript anche in VB6 si deve passare attraverso alcuni cerchi di fuoco per lavorare con esso.