`
fengyaodong
  • 浏览: 147032 次
  • 性别: 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.rar_XMLHTTP delphi_delphi xmlHt_delphi xmlhttp_xmlhttp

    这个“xmlhttp.rar”压缩包包含的资源是关于如何在Delphi环境中使用XMLHTTP组件来从网络获取数据,特别是通过调用百度API获取实时时间的示例。这对于初学者来说是一个很好的起点,因为它可以帮助理解如何与Web服务...

    VFP xmlHTTP应用实例

    《VFP xmlHTTP应用实例——构建API与三层架构》 Visual FoxPro(VFP)是Microsoft推出的一款数据库开发工具,以其高效、灵活的特点在数据库编程领域占有一定地位。本实例将探讨如何在VFP中利用xmlHTTP对象进行API的...

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

    1. **创建XMLHTTP对象**:在VBA代码中,使用`CreateObject("MSXML2.XMLHTTP")`或`New MSXML2.XMLHTTP`创建XMLHTTP对象实例。 2. **设置事件处理程序**:为了跟踪下载进度,我们需要为XMLHTTP对象的`...

    xmlhttp

    XMLHTTP的名称虽然包含了XML,但实际上,传输的数据格式不仅限于XML,也可以是JSON、文本或二进制数据等。这一特性使得它在处理各种类型的数据时都非常灵活。 XMLHttpRequest的工作原理: 1. 创建实例:首先,我们...

    XMLHTTP实现HTTPS+post登录

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

    易语言源码XMLHTTP方式访问网页.rar

    《易语言XMLHTTP方式访问网页源码解析与应用》 在信息技术日新月异的今天,易语言作为一款中文编程工具,以其独特的图形化编程界面和简洁的语法,深受初级和中级程序员的喜爱。本篇文章将深入探讨易语言通过XMLHTTP...

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

    XMLHTTP模块在VB6中的应用是进行Web服务交互的关键技术之一。这个标题提到的"vb6用的xmlhttp模块"实际上是指使用VB6(Visual Basic 6)编程时,通过XMLHTTP组件进行GET和POST请求,以实现异步的数据提交和获取,避免...

    易语言xmlhttp简单应用

    易语言XMLHTTP简单应用主要涉及的是使用易语言编程来实现对XMLHTTP接口的调用,以便进行网络数据的请求和处理。XMLHTTP是Microsoft开发的一个组件,它允许程序员通过HTTP或HTTPS协议发送异步HTTP请求,获取服务器...

    VB使用Microsoft.XMLHTTP判断程序是否联入互联网

    ### VB使用Microsoft.XMLHTTP判断程序是否联入互联网 在Visual Basic (VB) 开发环境中,开发者经常需要检测用户的计算机是否连接到了互联网。这种检测对于确保应用程序能够正常运行至关重要,尤其是在那些依赖于...

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

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

    XMLHTTP对象参考手册

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

    xmlHttp中文参考手册

    XMLHttp中文参考手册是一部专为Java后台程序员设计的实用指南,旨在帮助开发者更好地理解和运用XMLHttpRequest(通常简称为XMLHttp)这一技术。XMLHttp是AJAX(Asynchronous JavaScript and XML)技术的核心组成部分...

    在VC中使用XMLHTTP

    ### 在VC中使用XMLHTTP详解 #### 一、引言 在.NET框架中,通过C#语言使用XMLHTTP进行HTTP请求十分便捷。然而,在传统的Windows应用程序开发环境VC++ 6.0中,开发者可能需要更加深入地了解COM对象模型以及相关的...

    XMLHTTP类模块.rar

    这个RAR压缩包包含的资源很可能是易语言(E Language)编写的一个XMLHTTP类模块的源代码,用于帮助开发者在易语言环境下实现与服务器的异步通信。 XMLHTTP类模块的核心是XMLHttpRequest对象,它是浏览器内置的一个...

    详解XMLHTTP控件的应用

    ### 详解XMLHTTP控件的应用 #### XMLHTTP控件简介 XMLHTTP是一个非常重要的控件,主要用于客户端通过HTTP协议与服务器进行通信。该控件在Windows操作系统中是默认自带的,除了Windows 98及更早版本外。简单来说,...

    Microsoft.XMLHttp组件的属性方法

    这行代码在JavaScript中创建了一个XMLHTTP对象,你可以指定不同的MSXML版本号,例如MSXML2.XMLHTTP.3.0或MSXML2.XMLHTTP.6.0。 二、XMLHTTP的方法 1. `Open()`方法:用于初始化HTTP请求。参数包括请求类型(如GET或...

    XMLHttp中文参考手册

    XMLHttp中文参考手册是一份详尽的文档,旨在帮助开发者深入了解和有效利用Xmlhttp对象进行Web应用程序的异步通信。Xmlhttp对象,也被称为“AJAX”(Asynchronous JavaScript and XML)的核心,允许网页在不刷新整个...

    XMLHTTP参考(HTML格式)

    XMLHTTP是 AJAX(异步JavaScript和XML)技术中的核心组件,它允许Web应用程序在不刷新整个页面的情况下与服务器进行通信,实现数据的动态更新。这个参考手册,以HTML格式呈现,详细介绍了XMLHTTP对象的使用方法,...

    VB XMLHTTP 支持大文件分段与断点下载函数.rar

    然而,当处理大文件时,直接使用XMLHTTP一次性下载可能会遇到内存限制或网络中断的问题。为了解决这些问题,我们可以利用XMLHTTP支持的分段下载和断点续传功能。下面将详细介绍这些知识点。 首先,让我们理解什么是...

Global site tag (gtag.js) - Google Analytics