Работайте с Winhttprequest.ResponseStream (связанным с ISTREAM) в Classic ASP?
-
25-10-2019 - |
Вопрос
Есть ли способ работать с ResponseStream
имущество из WinHttp.WinHttpRequest.5.1
в VBScript/ASP? По крайней мере IStream
интерфейс (к которому ResponseStream
связан) интегрируется в ASP в определенной степени.
Или это предел того, чего вы можете достичь в сценарии? Требование вас бросить свой собственный компонент COM, если вы хотите пойти дальше?
<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
%>
Обратите внимание, что я знаю, что могу использовать тоже req.ResponseText
или же req.ResponseBody
. Анкет Заинтересован в том, чтобы знать, можете ли вы идти дальше в сценарии, используя вещи, которые задокументированы только для C, но может быть (спекуляция) доступен для сценария. Я не знаю о ком.
Решение
Вы ничего не можете сделать с Istream непосредственно в коде скрипта. Все, что вы могли бы сделать, это передать его объекту COM, который может его использовать.
Istream очень чужды VBScript даже в VB6, который должен прыгнуть через несколько огненных обручей, чтобы работать с ним.