Trabajar con winhttprequest.responseSteam (relacionado con istream) en el ASP clásico?
-
25-10-2019 - |
Pregunta
¿Hay alguna forma de trabajar con el ResponseStream
propiedad de WinHttp.WinHttpRequest.5.1
en VBScript/ASP? Al menos el IStream
interfaz (a la cual ResponseStream
está relacionado) está integrado en ASP hasta cierto punto.
¿O es ese el límite de lo que puedes lograr en el script? ¿Requirirle que enrolle su propio componente COM si desea ir más allá?
<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
%>
Tenga en cuenta que sé que puedo usar req.ResponseText
o req.ResponseBody
. El interés es saber si puede ir más allá en el script usando cosas que solo están documentadas para C pero quizás (especulando) Accesible para el script. No tengo conocimiento de com.
Solución
No hay nada que pueda hacer con un Istream directamente en el código de script. Todo lo que puede hacer es pasarlo a un objeto COM que pueda usarlo.
El Istream es muy ajeno a VBScript, incluso en VB6, uno tiene que saltar a través de algunos aros ardientes para trabajar con él.