Travailler avec les WinHttpRequest.ResponseStream (lié à IStream) en ASP classique?
-
25-10-2019 - |
Question
Est-il possible de travailler avec la propriété ResponseStream
de < a href = "http://msdn.microsoft.com/en-us/library/aa384106.aspx" rel = "nofollow"> WinHttp.WinHttpRequest.5.1
dans VBScript / ASP? Au moins le IStream
interface (à laquelle est lié ResponseStream
) est intégré dans ASP à un certain degré.
Ou est-ce que la limite de ce que vous pouvez obtenir dans le script? vous obliger à rouler votre propre composant COM si vous voulez aller plus loin?
<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
%>
Notez que je sais que je peux utiliser soit req.ResponseText
ou req.ResponseBody
. L'intérêt est de savoir si vous pouvez aller plus loin dans le script en utilisant des choses qui est seulement documenté C mais peut-être (spéculant) accessible à un script. Je ne suis pas bien informé sur COM.
La solution
Il n'y a rien que vous pouvez faire avec un IStream directement dans le code de script. Tout ce que vous pouvez faire est de passer à un objet COM qui pourrait l'utiliser.
Le IStream est très étranger à Vbscript même dans un VB6 doit sauter à travers des cerceaux de feu à travailler avec elle.