`
fengyaodong
  • 浏览: 143899 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

XMLHTTP发送数据的时候可以使用post和get两种方法
表单提交必须使用post

xmlHttp.Open "POST", urlStr, False

且在其后面必须加上

xmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

用于提交表单,否则也是无法获取正确的数据...^_^


以下是相关的介绍

xmlHTTP技术:
----------------------------------------------------------
一、数据库远程管理技术

基于互联网的广域网现代应用中的一个重要环节是数据库远程监控。首先简单回顾一下互联网上的数据库远程管理技术的发展过程和方式:

早期通过编写CGI-BIN程序模块进行数据库远程管理。但CGI-BIN的运行速度慢,维护很不方便,现在已经基本被弃用。

这几年使用组件对象模型(Component Object Model, COM)的应用非常多,效果也很好。但如果使用的是第三方服务器(笔者的网站就是建立在第三方的虚拟主机上),服务器方往往因为保密或其它商业原因不允许用户注册自己的组件。

近年来由微软公司推出的.NET平台和SUN公司的J2EE平台都是非常高档的数据库远程管理与服务平台。都能提供优质的多层(n-Tier)应用服务。
其中,.NET的简单对象访问协议(Simple Object Access Protocol, SOAP)使用超文本传输协议(Hypertext Transfer Protocol, HTTP)和扩展标记语言(Extensible Markup Language, XML)技术实现跨系统(例如Windows - Linux)的通讯服务方式已经广为开发商接受和使用。许多大型应用,例如企业资源计划(Enterprise resource planning, ERP)等都建立在这样的大型平台之上。
但对于中小型应用,比如一个网站的建设和维护,这种大型应用平台就显得有些尾大不掉,开销也过于庞大。

曾经在互联网技术和Java技术方面一度落后的微软公司在XML应用开发则走在了前头。她的XML解析器(MSXML)中的XMLHTTP协议是一个非常方便实用的客户/服务通讯管道。综合运用XMLHTTP以及ActiveX数据对象(ActiveX Data Objects, ADO/ADOX)可以简单方便地实现数据库远程管理。

本文介绍如何综合运用XMLHTTP和ADO/ADOX进行远程数据库管理。

二、数据库远程管理体系

数据库远程管理的任务流程是:
1、客户端向服务端发出数据库结构和数据的查询或修改指令。
2、服务端接受并执行有关指令并向客户端返回结果。
3、客户端接受并显示服务端返回的指令执行结果。

实现数据库远程管理的二个主要关键环节是:
1、客户端与服务端之间的指令上传和结果下传的数据通道,由XMLHTTP协议实现。
2、服务端前沿与数据库之间的指令传送和结果返回,由起着中间层作用的ADO/ADOX接口完成。
三、XMLHTTP的使用

顾名思义,XMLHTTP是个传送XML格式数据的超文本传输协议。

实际上,XMLHTTP的数据传输过程更为灵活一些:
它上传的指令可以是XML格式数据,也可以是字符串,流,或者一个无符号整数数组。还可以是URL的参数。
它下达的结果可以是XML格式数据,也可以是字符串,流,或者一个无符号整数数组。
详情可参阅文末链接。

客户端调用XMLHTTP的过程很简单,只有5个步骤:
1、创建XMLHTTP对象
2、打开与服务端的连接,同时定义指令发送方式,服务网页(URL)和请求权限等。
客户端通过Open命令打开与服务端的服务网页的连接。与普通HTTP指令传送一样,可以用"GET"方法或"POST"方法指向服务端的服务网页。
3、发送指令。
4、等待并接收服务端返回的处理结果。
5、释放XMLHTTP对象

XMLHTTP方法:
Open bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword
bstrMethod:数据传送方式,即GET或POST。
bstrUrl:服务网页的URL。
varAsync:是否同步执行。缺省为True,即同步执行,但只能在DOM中实施同步执行。
应用中一般将其置为False,即异步执行。
bstrUser:用户名,可省略。
bstrPassword:用户口令,可省略。

Send varBody
varBody:指令集。可以是XML格式数据,也可以是字符串,流,或者一个无符号整数数组。也可以省略,让指令通过Open方法的URL参数代入。

setRequestHeader bstrHeader, bstrValue
bstrHeader:HTTP 头(header)
bstrValue:HTTP 头(header)的值
如果Open方法定义为POST,可以定义表单方式上传:
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

XMLHTTP属性:
onreadystatechange:在同步执行方式下获得返回结果的事件句柄。只能在DOM中调用。
responseBody:结果返回为无符号整数数组。
responseStream:结果返回为IStream流。
responseText :结果返回为字符串。
responseXML:结果返回为XML格式数据。


下面是本文附件源程序中的一个应用示例:
Function GetResult(urlStr)
Dim xmlHttp
Dim retStr

Set xmlHttp = CreateObject("Msxml2.XMLHTTP") '创建对象
On Error Resume Next '出错处理
xmlHttp.Open "POST", urlStr, False '用POST方式打开连接,异步执行。
xmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" '上传表单
xmlHttp.Send '发送指令

If Err.Number = 0 Then '如果连接正确
retStr = xmlHttp.responseText '等待并获得服务端返回的结果字符串
Else
retStr = "Url not found" '否则返回出错信息
End If
Set xmlHttp = nothing '释放对象 GetResult = retStr '返回结果
End Function

GetResult()函数带入一个服务网页的URL参数,把上传的指令安放在URL后面的参数上,如:
urlStr = "server.asp?cmd=" & cmd & "&db=" & db & "table=" & table
cmd:执行方式,例如查询,修改,删除等等。
db:服务端数据库名
table:服务端表名

然后提交指令,等待并接收返回的处理结果。结果以字符串方式返回。

最后由函数调用者处理并显示结果。

分享到:
评论

相关推荐

    xmlhttp说明文档,xmlhttp中文帮助文档,chm格式

    xmlhttp中文帮助文档 Xmlhttp是一种浏览器对象, 可用于模拟http的GET和POST请求。配合JavaScript可以实现页面数据在无刷新下的定时数据更新,如果应用在聊天室、文字直播上可以取得较好的视觉效果。 使用范例: ...

    XmlHttp手册XmlHttp手册

    XmlHttp手册XmlHttp手册XmlHttp手册XmlHttp手册XmlHttp手册

    xmlhttp

    介绍xmlhttp比较的详细

    详解XMLHTTP控件的应用

    最近有一些朋友问我XMLHTTP对象到底是什么,有什么用。考试完了我反正没什么事,就写了篇文章详细地介绍一下Microsoft.XMLHTTP对象的使用,文章浅显,主要针对对这个对象不太了解的人。 首先,Microsoft.XMLHTTP是一...

    XMLHTTP对象参考手册

    最通用的定义为:XmlHttp是一套可以在...现在的绝对多数浏览器都增加了对XmlHttp的支持,IE中使用ActiveXObject方式创建XmlHttp对象,其他浏览器如:Firefox、Opera等通过window.XMLHttpRequest来创建xmlhttp对象。

    在VC中使用XMLHTTP

    主 题: 在VC中使用XMLHTTP,怎样初始化,怎样建立连接?在线等。 我的一段代码在.NET中用C#已经调通,我想搬到VC++ 6.0上,但不知道任何各种写法规则。 C# 中为: MSXML2.XMLHTTP xmlHttp_ = new ...

    XMLHTTP实现HTTPS+post登录

    前几天群里有个朋友问我怎么登录BAIDU,我们... ... ... 然后看到XMLHTTP可以模拟发送HTTPS的数据包,于是便有了以下函数 //构造数据包 strcat(buf,"tpl_ok=&next;_target=&tpl=mn&skip;... XmlHttp(MyLogin_URL,"POST",buf);

    VFP xmlHTTP应用实例

    VFP xmlHTTP应用实例,搭建API,三层结构 内附测试环境及asp代码

    易语言xmlhttp简单应用

    易语言xmlhttp简单应用源码,xmlhttp简单应用

    XMLHTTP类模块.rar

    XMLHTTP类模块.rar XMLHTTP类模块.rar XMLHTTP类模块.rar XMLHTTP类模块.rar XMLHTTP类模块.rar XMLHTTP类模块.rar

    vb6用的xmlhttp模块,get和post方式提交数据,异步获取,不卡死,十分好用

    以前写的一个xmlhttp提交数据的类模块,能有效地解决xmlhttp组件卡死问题,可用于,制件网络投票程序,网络信息收集程序

    Excel vba使用XMLHTTP进行异步下载的演示

    大文件下载不再卡机。XMLHTTP的OnReadyStateChange事件进行异步下载的演示。例子是下载一个8M的mp3文件

    xmlhttp详细帮助文档!!

    xmlhttp详细帮助文档 xmlhttp详细帮助文档 xmlhttp详细帮助文档

    易语言XMLHTTP方式访问网页

    易语言XMLHTTP方式访问网页源码,XMLHTTP方式访问网页,XmlHttp

    xmlhttp各版本速度比较.rar

    xmlhttp各版本速度比较.rar xmlhttp各版本速度比较.rar xmlhttp各版本速度比较.rar xmlhttp各版本速度比较.rar xmlhttp各版本速度比较.rar xmlhttp各版本速度比较.rar

    xmlHttp中文参考手册

    xmlHttp中文参考手册,纯中文,为java后台程序员开发方便而上传

    XMLHTTP方式访问网页.rar

    XMLHTTP方式访问网页.rar XMLHTTP方式访问网页.rar XMLHTTP方式访问网页.rar XMLHTTP方式访问网页.rar XMLHTTP方式访问网页.rar XMLHTTP方式访问网页.rar

    xmlhttp对象_VC中调用XMLHTTP对象访问

    xmlhttp对象_VC中调用XMLHTTP对象访问

    易语言XMLHTTP类模块

    易语言XMLHTTP类模块源码,XMLHTTP类模块,Status,StatusText,ResponseXML,ResponseText,ResponseBody,ResponseStream,ReadyState,onreadystatechange,Open,SetRequestHeader,GetResponseHeader,GetAllResponseHeaders...

Global site tag (gtag.js) - Google Analytics