| 编者注:这个class主要用于操作asp中的xmlhttp。 首先是类定义 Cls_AspHttp.asp: <%''=================================================================
 ''飞扬远程获取类(AspHttp) 1.0.1 Bate1
 ''   By 奔腾的心
 ''   2006-04-19
 ''=================================================================
 Class FlyCms_AspHttp
 Public oForm,oXml,Ados
 Public strHeaders
 Public sMethod
 Public sUrl
 Public sReferer
 Public sSetCookie
 Public sLanguage
 Public sCONTENT
 Public sAgent
 Public sEncoding
 Public sAccept
 Public sData
 Public sCodeBase
 Private slresolveTimeout,slconnectTimeout,slsendTimeout,slreceiveTimeout
 '' ============================================
 '' 类模块初始化
 '' ============================================
 Private Sub Class_Initialize()
 oForm = ""
 Set oXml = Server.CreateObject("MSXML2.ServerXMLHTTP")
 set Ados = Server.CreateObject("Adodb.Stream")
 slresolveTimeout = 20000   '' 解析DNS名字的超时时间,20秒
 slconnectTimeout = 20000   '' 建立Winsock连接的超时时间,20秒
 slsendTimeout   = 30000   '' 发送数据的超时时间,30秒
 slreceiveTimeout = 30000   '' 接收response的超时时间,30秒
 End Sub
 
 '' ============================================
 '' 返回版本信息
 '' ============================================
 Public Property Get Version
 Version = "飞扬asphttp类1.0.0"
 End Property
 '' ============================================
 '' 解析DNS名字的超时时间
 '' ============================================
 Public Property Let lresolveTimeout(LngSize)
 If IsNumeric(LngSize) Then
 slresolveTimeout = Clng(LngSize)
 End If
 End Property
 '' ============================================
 '' 建立Winsock连接的超时时间
 '' ============================================
 Public Property Let lconnectTimeout(LngSize)
 If IsNumeric(LngSize) Then
 slconnectTimeout = Clng(LngSize)
 End If
 End Property
 '' ============================================
 '' 发送数据的超时时间
 '' ============================================
 Public Property Let lsendTimeout(LngSize)
 If IsNumeric(LngSize) Then
 slsendTimeout = Clng(LngSize)
 End If
 End Property
 '' ============================================
 '' 接收response的超时时间
 '' ============================================
 Public Property Let lreceiveTimeout(LngSize)
 If IsNumeric(LngSize) Then
 slreceiveTimeout = Clng(LngSize)
 End If
 End Property
 '' ============================================
 '' Method
 '' ============================================
 Public Property Let Method(strMethod)
 sMethod = strMethod
 End Property
 '' ============================================
 '' 发送url
 '' ============================================
 Public Property Let Url(strUrl)
 sUrl = strUrl
 End Property
 '' ============================================
 '' Data
 '' ============================================
 Public Property Let Data(strData)
 sData = strData
 End Property
 '' ============================================
 '' Referer
 '' ============================================
 Public Property Let Referer(strReferer)
 sReferer = strReferer
 End Property
 '' ============================================
 '' SetCookie
 '' ============================================
 Public Property Let SetCookie(strCookie)
 sSetCookie = strCookie
 End Property
 '' ============================================
 '' Language
 '' ============================================
 Public Property Let Language(strLanguage)
 sLanguage = strLanguage
 End Property
 '' ============================================
 '' CONTENT-Type
 '' ============================================
 Public Property Let CONTENT(strCONTENT)
 sCONTENT = strCONTENT
 End Property
 '' ============================================
 '' User-Agent
 '' ============================================
 Public Property Let Agent(strAgent)
 sAgent = strAgent
 End Property
 '' ============================================
 '' Accept-Encoding
 '' ============================================
 Public Property Let Encoding(strEncoding)
 sEncoding = strEncoding
 End Property
 '' ============================================
 '' Accept
 '' ============================================
 Public Property Let Accept(strAccept)
 sAccept = strAccept
 End Property
 '' ============================================
 '' CodeBase
 '' ============================================
 Public Property Let CodeBase(strCodeBase)
 sCodeBase = strCodeBase
 End Property
 '' ============================================
 '' 建立数据传送对向!
 '' ============================================
 Public Function AddItem(Key, Value)
 On Error Resume Next
 Dim TempStr
 If oForm = "" Then
 oForm = Key + "=" + Server.URLEncode(Value)
 Else
 oForm = oForm + "&" + Key + "=" + Server.URLEncode(Value)
 End If
 End Function
 '' ============================================
 '' 发送数据并取回远程数据
 '' ============================================
 Public Function HttpGet()
 Dim sReturn
 With oXml
 .setTimeouts slresolveTimeout,slconnectTimeout,slsendTimeout,slreceiveTimeout
 .Open sMethod,sUrl,False
 If sSetCookie<>"" Then
 .setRequestHeader "Cookie", sSetCookie       ''设定Cookie
 End If
 If sReferer<>"" Then
 .setRequestHeader "Referer", sReferer       ''设定页面来源
 Else
 .setRequestHeader "Referer", sUrl
 End If
 If sLanguage<>"" Then
 .setRequestHeader "Accept-Language", sLanguage      ''设定语言
 End If
 .setRequestHeader "Content-Length",Len(sData)       ''设定数据长度
 If sCONTENT<>"" Then
 .setRequestHeader "CONTENT-Type",sCONTENT       ''设定接受数据类型
 End If
 If sAgent<>"" Then
 .setRequestHeader "User-Agent", sAgent        ''设定浏览器
 End If
 If sEncoding<>"" Then
 .setRequestHeader "Accept-Encoding", sEncoding       ''设定gzip压缩
 End If
 If sAccept<>"" Then
 .setRequestHeader "Accept", sAccept       ''文档类型
 End If
 .Send sData          ''发送数据
 While .readyState <> 4
 .waitForResponse 1000
 Wend
 strHeaders = .getAllResponseHeaders()
 If sCodeBase<>"" Then
 sReturn    = bytes2BSTR(.responseBody)
 Else
 sReturn    = .responseBody
 End If
 End With
 HttpGet = sReturn
 End Function
 '' ============================================
 '' 处理二进制数据
 '' ============================================
 Private Function bytes2BSTR(vIn)
 strReturn = ""
 For i = 1 To LenB(vIn)
 ThisCharCode = AscB(MidB(vIn,i,1))
 If ThisCharCode < &H80 Then
 strReturn = strReturn & Chr(ThisCharCode)
 Else
 NextCharCode = AscB(MidB(vIn,i+1,1))
 strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
 i = i + 1
 End If
 Next
 bytes2BSTR = strReturn
 End Function
 '' ============================================
 '' 类模块注销
 '' ============================================
 Private Sub Class_Terminate
 oForm = ""
 Set oXml = Nothing
 Set Ados = Nothing
 End Sub
 End Class
 %>
                          (编辑:南平站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |