远程获取XMLHTTP类

<%
'=================================================================
'飞扬远程获取类(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
Response.Write sData
.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
%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值