在Classic ASP中使用WinHttpRequest.ResponseStream(与IStream相关)?

时间:2011-11-30 01:44:37

标签: com asp-classic istream winhttp winhttprequest

有没有办法在VBScript / ASP中使用ResponseStream property WinHttp.WinHttpRequest.5.1?至少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.ResponseTextreq.ResponseBody。我们的兴趣在于知道你是否可以使用仅为C记录的内容进一步使用脚本,但可能(推测)可以访问脚本。我对COM不了解。

1 个答案:

答案 0 :(得分:2)

您无法直接在脚本代码中使用IStream。您所能做的就是将它传递给可能使用它的COM对象。

IStream与Vbscript非常陌生,即使在VB6中也必须跳过一些火热的箍来处理它。