飞扬远程获取类Asp xmlHttp 源码
来源:asp之家 发布时间:2010-04-03 20:37:00
本文的asp xmlhttp类,使用asp的MSXML2.ServerXMLHTTP组件来获取远程音乐文件。
类定义 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
%>
猜你喜欢
- ERROR 2003:Can't connect to MySQL server on 'localhost' (1
- 技巧问题 Mysql的远程连接出现"Lost connection to MySQL server during query&qu
- 昨晚着手给个人博客增加网易微博的调用,在Opera下却出现了一个意想不到的问题。内容的展示,一开始是做成横向不间断滚动(现在已经改成纵向定时
- 比如说在1-3000之内生成随机永不重复数,点击运行代码的时候请注意,此代码比较占用资源,如果硬件配置比较菜请把count改小。俺的电脑配置
- 创建与打开站点启动FrontPage XP,选择菜单“文件/新建”,再单击“网页或站点”命令选项。在“新建网页或站点”任务窗格
- 使用xhtml+css布局经常性地会使用到float,很多邪门的事儿都有可能是浮动在作怪,那么清除浮动就是必须要做的,而且随时性地对父级元素
- 对MySQL的用户而言,备受诟病的一个问题就是导入SQL备份文件时不能并发,使得导入的效率很低。今天,我们就来改变下思路,尝试一下并发导入的
- 我们经常会在登录一个网站的时候被引导页挡住前进的脚步,这一点在上个世纪到本世纪初的网站中尤其明显,特别是在企业网站里,几乎每个企业网站都会有
- 以下为测试例子。 1.首先创建两张临时表并录入测试数据: 代码如下:create table #temptest1 ( id i
- 对于数据库管理员来说,可以经常想了解一些之前未听说过的存储过程,特别是无文档类型的存储过程。或许是用这些存储过程,能够简化日常的数据管理。为
- 删除一,你可以先把类型为varchar的字段该名,再加以个字段为要该为date的字段名相同,二,1,测试表create table TEST
- udf_WeekDayName 代码如下:CREATE FUNCTION [dbo].[udf_WeekDayName] ( ) RETUR
- 不过有一个简单的执行cmd命令方法: SQL> host net user User accounts for \\PC-ATQHJ4
- asp如何获知页面上的图象的实际尺寸大小?见下面的两个asp文件:<!--#include virtual="/i
- 今天因为做一个效果的时候需要CSS的定位来实现,于是我就根据自己原来对CSS的了解,用absolute和relative摆弄了好一阵子,总是
- 在开发WEB应用程序中,我们经常需要对文件系统中的驱动器、文件夹和文件进行处理,比如收集驱动器的相关信息;创建、添加、移动或删除文件夹和文件
- 这可能是一个非常简单的问题,但是今天花一点点时间把这个简单的问题在说清晰一点,相信大家对CSS的学习和认识会很有帮助,强化一些概念的东西,对
- 1概述 SQL语言的本质就是一串伪代码,表达的是做什么,而不是怎么做的意思。如其它语言一样,SQL语句需要编译之后才能运行,所以每一条SQL
- 一直很想就搜索结果页写一些心得文章出来,甚至连目录都整理好了可是就是一直没有动手。因为总是觉得还差很多东西需要研究需要分析需要验证。最近也组
- 8. 使用DECODE函数来减少处理时间使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表. 例如: SELECT COUNT(