关于aspHTTP
AspHTTP使你能够使用http协议GET/POST/HEAD文档
AspHTTP不是免费组件,需要你购买,更多信息请参考其主页
特性
1 GET/POST/HEAD 请求方法
2 response(回应)头可见
3 Accept(接受)头可修改
4 超时时间可调整
5 支持Proxy代理
6 自定义客户-代理头
7 自定义POSTS的内容-类型头
8 重定向
9 支持验证内容
10 从URl获得文件(包括两进制文件)
11 允许自定义HTTP请求头
AspHTTP 的安装
将dll文件,拷贝到一个子目录,例如NT的目录\winnt\system32,win95/98的目录\windows\system.
注册dll文件,命令行将当前目录换到该目录,然后键入:
regsvr32 aspHTTP.dll
简单实例:
使用这个组件十分简单
1.创建对象
2.设定一些属性
3.调用GetUrl方法
下面是vbscript使用AspHTTP的示例代码
Set HttpObj = Server.CreateObject("AspHTTP.Conn")
HttpObj.Url = "http://www.myfinancialpage.com/qrtresults.html"
strResult = HttpObj.GetURL
变量strResult现在包含一个字符串从http://www.myfinancialpage.com/qrtresults.html
GET获得的文档结果
实例:获得GIF文件
<%
rem This demo pulls a GIF image from www.microsoft.com
Server.ScriptTimeout = 240
Set HttpObj = Server.CreateObject("AspHTTP.Conn")
HttpObj.Url = "http://www.microsoft.com/library/images/gifs/toolbar/write.gif"
HttpObj.FollowRedirects = false
HttpObj.RequestMethod = "GET"
HttpObj.UserAgent = "Mozilla/2.0 (compatible; MSIE 3.0B; Windows NT)"
HttpObj.SaveFileTo = "c:write.gif"
HttpObj.GetURL
Response.Write "<hr><h3>Headers Received</h3><pre>" & HttpObj.Headers & "</pre>"
%>
实例:处理和显示URL包含的HREF
<html>
<body>
<%
Server.ScriptTimeout = 240
Set HttpObj = Server.CreateObject("AspHTTP.Conn")
HttpObj.Url = "http://www.genusa.com/asp/tools.html"
HttpObj.RequestMethod = "GET"
HttpObj.UserAgent = "Mozilla/2.0 (compatible; MSIE 3.0B; Windows NT)"
strResult = HttpObj.GetURL
Response.Write "<h2>A HREF List</h2>"
varHREFArray = HttpObj.GetHREFs
intHREFArrayLimit = UBound(varHREFArray) -1
For I = 0 to intHREFArrayLimit
Response.Write varHREFArray(I) & "<br>" & VBCrLF
Next
%>
</body>
</html>
ASPHTTP组件下载
主页:http://www.serverobjects.com/products.htm#Asphttp
下载:http://www.serverobjects.com/comp/asphttp3.zip
AspHTTP组件的属性
Accept
指示什么样的MIME类型可以被请求程序接受
例如:
HttpObj.Accept = "*/*"
Authorization
授权头可以让你获得 需要验证身份的地方的url
用户名和口令之间用冒号点开
例如:
HttpObj.Authorization = "jimb:superbmr"
BinaryData
返回来自getURl请求获得的两进制格式的数据,你可以用这个属性取得两进制数据
ContentType
这个属性允许你在POST操作时自定义content-type头
例如:
ContentType = "application/x-www-form-urlencoded"
Error
报告请求中发生的任何错误
FollowRedirects
FollowRedirects告诉组件跟随HTTP Server的重定向
例如:
HttpObj.FollowRedirects = true
Headers
Headers属性包含了在请求被调用GetURL处理完成之后,来自http请求的回应头
例如:
Response.Write HttpObj.Headers
Port
Port属性指示连接http服务器的端口号
例如:
HttpObj.Port = 80
PostData
PostData属性应该被设置为你希望post请求POST到web服务器的数据的值
例如:
HttpObj.PostData = "suid=jimb&act=upd"
Protocol
指示请求应该使用的http协议版本号,缺省值是HTTP/1.0
例如:
HttpObj.Protocol = "HTTP/1.1"
Proxy
proxy属性包含proxy server代理服务器的地址/端口,冒号点开
例如:
HttpObj.Proxy = "address.net:2001"
ProxyPassword
设置需要验证的http代理服务器的http代理密码,现在只支持basic authentication(基本验证)
RequestMethod
RequestMethod属性指示发给服务器http请求的类型,合法的值是"GET", "POST" 和 "HEAD".
例如:
HttpObj.RequestMethod = "POST"
RegisteredUser
RegisteredUser属性指示组件授权用户的名字
例如:
Response.Write "This component is licensed to " & HttpObj.RegisteredUser
Response
Response属性包含在收到web服务器过来的请求之后的http response回应
SaveFileTo
SaveFileTo允许你得到任何类型的文件,自动存到本地盘上。图形/文本/HTML文件均可以。
例如:
HttpObj.SaveFileTo = "c:\images\3rdqrtr.jpg"
TimeOut
timeout属性决定组件等待http server响应的时间
例如:
HttpObj.TimeOut = 45
URL
URL属性设定你希望request请求所操作的url,以http://开头
例如:
HttpObj.URL = "http://www.lan27.com/chengyu/index.aspx"
UserAgent
UserAgent让组件通过发送一个request的UserAgent头伪装浏览器
例如:
HttpObj.UserAgent = "Mozilla Compatible (MS IE 3.01 WinNT)"
Version
指示AspHTTP组件的版本
例如:
Response.Write "The component version is " & HttpObj.Version
AspHTTP组件的方法
方法 | 参数 | 返回值 | 描述 |
GetURL | 无 | String | 返回http请求的响应,这是一个字符串,组件不支持2进制返回值,如Gif/Jpg图像 |
AddExtraHeader | String | 无 | 在请求内增加一个自定义的http头,自定义头可以包括模拟的浏览器头,例如IE的分辨率信息头 |
ClearExtraHeaders | 无 | 无 | 清除所有AddExtraHeader设置的http头 |
GetHeader | String | String | 在GetUrl调用之后,获得自定头的值,如果有多个头,返回第一个。要检索所有的头,请看GetHeaders |
Example:
strCookie = HttpObj.GetHeader("Set-Cookie")
You could then on subsequent calls return the same cookie as follows:
if strCookie <> "" then
HttpObj.AddExtraHeader "Cookie: " & strCookie
end if
☉最简单的asp中调用存储过程的实例 (2009-8-1 11:41:50)
☉测试空间是否支持XMLHTTP组件 (2009-7-13 23:8:17)
☉测试空间是否支持ADODB.STREAM的方法 (2009-7-12 12:52:16)
☉asp获取网页源代码并处理乱码的方法 (2009-7-11 22:15:34)
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。