惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
C
Check Point Blog
博客园_首页
B
Blog
D
Docker
U
Unit 42
量子位
I
InfoQ
有赞技术团队
有赞技术团队
Martin Fowler
Martin Fowler
GbyAI
GbyAI
L
LangChain Blog
云风的 BLOG
云风的 BLOG
博客园 - Franky
美团技术团队
T
The Blog of Author Tim Ferriss
阮一峰的网络日志
阮一峰的网络日志
月光博客
月光博客
Vercel News
Vercel News
Recent Announcements
Recent Announcements
雷峰网
雷峰网
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Google DeepMind News
Google DeepMind News

博客园 - 阿凯(china)

程序员的.NET时代 Web 2.0 概念汇总 使用AJAX技术开发新一代Web应用程序 2 使用AJAX技术开发新一代Web应用程序 1 Ajax的宣传及现状:改变门户体验的技术 AJAX简介(转) AJAX开发简略 (第二部分) AJAX开发简略 (第一部分) AJAX基础教程 近10年最强的50本计算机图书,您读过几本? 2005年十本最佳商业与管理书籍 Asp.Net 学习资源列表 ASP.NET 2.0 绑定高级技巧 ADO.NET 2.0 功能一览 深度解析Asp.Net2.0中的Callback机制 学习杂记1 关于视图状态 ASP.NET 2.0 中的数据源控件 ASP.NET 2.0 和数据绑定控件:新的角度,新的做法
转载:XMLHTTP介绍 - 阿凯(china) - 博客园
阿凯(china) · 2005-12-28 · via 博客园 - 阿凯(china)

MSXML中提供了Microsoft.XMLHTTP对象,能够完成从数据包到Request对象的转换以及发送任务。 

创建XMLHTTP对象的语句如下:

 
Set objXML = CreateObject("Msxml2.XMLHTTP") 或
Set objXML = CreateObject("Microsoft.XMLHTTP")
'Or for version 3.0 of XMLHTTP, use:
'Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP") 

对象创建后调用Open方法对Request对象进行初始化,语法格式为: 


objXML.open http-method,url,async,userID,password 

Open方法中包含了5个参数,前三个是必要的,后两个是可选的(在服务器需要进行身份验证时提供)。参数的含义如下所示:
  
http-method:HTTP的通信方式,比如GET或是POST 
url:接收XML数据的服务器的URL地址。通常在URL中要指明ASP或CGI程序 
async:一个布尔标识,说明请求是否为异步的。如果是异步通信方式(true),客户机就不等待服务器的响应;如果是同步方式(false),客户机就要等到服务器返回消息后才去执行其他操作 
userID:用户ID,用于服务器身份验证 
password:用户密码,用于服务器身份验证 

XMLHTTP对象的Send方法

用Open方法对Request对象进行初始化后,调用Send方法发送XML数据: 

Send方法的参数类型是Variant,可以是字符串、DOM树或任意数据流。

发送数据的方式分为同步和异步两种。在异步方式下,数据包一旦发送完毕,就结束Send进程,客户机执行其他的操作;而在同步方式下,客户机要等到服务器返回确认消息后才结束Send进程。

XMLHTTP对象中的readyState属性

其能够反映出服务器在处理请求时的进展状况。客户机的程序可以根据这个状态信息设置相应的事件处理方法。属性值及其含义如下表所示: 


值  说明 
0   Response对象已经创建,但XML文档上载过程尚未结束 
1   XML文档已经装载完毕 
2   XML文档已经装载完毕,正在处理中 
3   部分XML文档已经解析 
4   文档已经解析完毕,客户端可以接受返回消息

 

客户机处理响应信息,客户机接收到返回消息后,进行简单的处理,基本上就完成了C/S之间的一个交互周期。 

客户机接收响应是通过XMLHTTP对象的属性实现的:
 
responseText:将返回消息作为文本字符串; 
responseBody:将返回消息作为HTML文档内容;
responseXML:将返回消息视为XML文档,在服务器响应消息中含有XML数据时使用; 
responseStream:将返回消息视为Stream对象 

以下是一个简单的例子:类似新闻小偷


<%
Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")
objXML.open "GET","http://www.alexa.com",false
objXML.send()
response.write(objXML.responseText)
%>

整个步骤很明显:建立、打开、发送和接受。

p.s.本处调试为alexa站点,如果选择为国内中文站点则会出现乱码,故需要一个函数转换,具体见《偷也是门技术——浅谈XMLHTTP应用:新闻小偷