1.代理(invoke)
 CallByName 函数

•执行一个对象的方法,或者设置或返回一个对象的属性。
•语法
•CallByName(object, procname, calltype,[args()])
•CallByName 函数的语法有以下命名参数:

部分

描述

object 必需的;

变体型(对象)。函数将要执行的对象的名称。

procname 必需的;

变体型(字符串)。一个包含该对象的属性名称或者方法名称的字符串表达式

calltype 必需的;

常数。一个 vbCallType 类型的常数,代表正在被调用的过程的类型。

args() 可选的;

变体型(数组)。

 

<补充> 1).Calltype:vbMethod,VbGet,VbLet,VbSet

2).CallByName obj, methodName, VbMethod, args

2.数据结构

Public Type SqlInfo

sql As String

resultSet() As Object

End Type

3.Create XML

Private Sub sbCreateCommonXML(ByRef xmlDoc As MSXML2.DOMDocument, ByRef node() As IXMLDOMNode)

Dim xmlPI As IXMLDOMProcessingInstruction

ReDim Preserve node(2)

Set xmlDoc = New MSXML2.DOMDocument

Set xmlPI = xmlDoc.appendChild(xmlDoc.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8"""))

Set node(0) = xmlDoc.appendChild(xmlDoc.createNode(NODE_ELEMENT, "SmartProxyInfo", ""))

Set node(1) = node(0).appendChild(xmlDoc.createNode(NODE_ELEMENT, "ConnectionInfo", ""))

End Sub

4.向XML中填入值

Private Sub sbSetLoginInfoXML(ByRef xmlDoc As MSXML2.DOMDocument, ByRef node As IXMLDOMNode)

node.appendChild(xmlDoc.createNode(NODE_ELEMENT, "userid", "")).Text = dataAccessUser

node.appendChild(xmlDoc.createNode(NODE_ELEMENT, "password", "")).Text = dataAccessPass

If dataAccessGuid <> "" Then

node.appendChild(xmlDoc.createNode(NODE_ELEMENT, "token", "")).Text = dataAccessGuid

End If

End Sub

5.用HTTP发送XML

-通常定义:XmlHttp提供客户端同http服务器通讯的协议。客户端可以通过XmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用微软XML文档对象模型Microsoft® XML Document Object Model (DOM)处理回应。

-MSDN定义: XmlHttp是一套可以在Javascript、VbScript、Jscript等脚本语言中通过http协议传送或从接收XML及其他数据的一套API。XmlHttp最大的用处是可以更新网页的部分内容而不整个需要刷新页面。
 XmlHttp对象参考:
属性:
onreadystatechange* 指定当readyState属性改变时的事件处理句柄。只写
readyState 返回当前请求的状态,只读.
responseBody 将回应信息正文以unsigned byte数组形式返回.只读
responseStream 以Ado Stream对象的形式返回响应信息。只读
responseText 将响应信息作为字符串返回.只读
responseXML 将响应信息格式化为Xml Document对象并返回,只读
status 返回当前请求的http状态码.只读
statusText 返回当前请求的响应行状态,只读

* 表示此属性是W3C文档对象模型的扩展.

方法:
abort 取消当前请求
getAllResponseHeaders 获取响应的所有http头
getResponseHeader 从响应信息中获取指定的http头
open 创建一个新的http请求,并指定此请求的方法、URL以及验证信息(用户名/密码)
send 发送请求到http服务器并接收回应
setRequestHeader 单独指定请求的某个http头

6.解析XML

1)Dim objDOM As New MSXML2.DOMDocument

Dim rtResult As Variant

rtResult = objDOM.LoadXML(responseText)

objDOM.SelectNodes("/SmartProxyInfo/Message")(0)

•返回值
•包含了匹配查询的节点的一个 NodeList。
•说明
•这个特定于 IE 的方法计算一个 XPath 表达式,使用该节点作为查询的根节点,并且将结果作为一个 NodeList 返回。这个 selectNodes() 方法只用于 XML 文档节点,不用于 HTML 文档节点。注意,既然 Document 对象是它们自己的节点,这个方法可以应用于整个 XML 文档。

2)接着放入集合-CreateObject("Scripting.Dictionary")再投入到queryInfo.resultSet 中

7.读取本地ini文件

Dim iniBuf As String * 200

Call GetPrivateProfileString("DataAccessService", dataAccessName, "", iniBuf, Len(iniBuf), ThisWorkbook.Path & "\LoginInfo.ini")

dataAccessUrl = Left$(iniBuf, InStr(1, iniBuf, vbNullChar) - 1)

GetPrivateProfileString(WIN API):

意思是为初始化文件中指定的条目取得字串。它是编辑语言中的一种函数结构。

8.计算程序运行时间

Private Declare Function timeGetTime Lib "winmm.dll" () As Long

Dim startTime As Long

startTime = timeGetTime()

Debug.Print "start : " + methodName

-----运行的代码块------

Debug.Print "end : " + methodName + " - " + CStr(timeGetTime() -         startTime) + "ms"

vba用http发送xml所需技术的更多相关文章

  1. Android之通过向WebService服务器发送XML数据获取相关服务

    原理图如下:        即客户端向WebService服务器通过HTTP协议发送XML数据(内部包含调用的一些方法和相关参数数据),然后WebService服务器给客户端返回一定的XML格式的数据 ...

  2. mina的编码和解码以及断包的处理,发送自己定义协议,仿qq聊天,发送xml或json

    近期一段时间以来,mina非常火,和移动开发一样.异常的火爆.前面写了几篇移动开发的文章,都还不错.你们的鼓舞就是我最大的动力.好了,废话少说.我们来看下tcp通讯吧. tcp通讯对于java来说是非 ...

  3. 在配置hibernate.cfg.xml时需指定使用数据库的方言:

    在配置hibernate.cfg.xml时需指定使用数据库的方言: 例: <property name="dialect">org.hibernate.dialect. ...

  4. PHP SOAP 发送XML

    <?php $xmldata = <<<EOT <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap. ...

  5. 关于MIS 系统所需技术和含义

    操作系统的作用在于 1资源管理 2人机交互.它提供各个应用软件的运行平台,也为用户提供交互界面.所需技术:一.b/s架构B/S结构即浏览器和服务器结构,在这种结构下,用户工作界面是通过WWW浏览器来实 ...

  6. PHP接收和发送XML数据(json也通用)

    一.接收xml数据, 使用php://input,代码如下: <?php $xmldata=file_get_contents("php://input"); $data=s ...

  7. 【SoapUI、Postman、WebServiceStudio、Jmeter】接口测试工具结合测试webservice接口(发送XML格式参数)

    目录: SoapUI测试webservice接口,发送XML格式参数 Postman测试webservice接口,发送XML格式参数 WebServiceStudio.exe测试webservice接 ...

  8. Ajax发送XML请求案例

    Ajax发送XML请求需求: 根据输入的国家,输出这些国家下面的城市. 如果请求参数较多,而且请求参数的结构关系复杂,则可以考虑发送XML请求.XML请求的实质还是POST请求,只是在发送请求的客户端 ...

  9. Android使用webService(发送xml数据的方式,不使用jar包)

    Android使用webService可以用ksoap2.jar包来使用.但是我觉得代码不好理解,而且记不住. 所以我查询了好多资料,以及自己的理解.可以用代码发送http请求(发送xml数据)来访问 ...

随机推荐

  1. jBox使用方法

    1.引入jquery文件 2.引入css和jBox文件 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml& ...

  2. 异常处理与MiniDump详解(转)

    一.   综述 总算讲到MiniDump了. Dump有多有用我都无法尽数,基本上属于定位错误修复BUG的倚天剑.(日志可以算是屠龙刀)这些都是对于那些不是必出的BUG,放在外面运行的时候出现的BUG ...

  3. c语言typedef的用法-解惑阿!很多天书般的东西解释的不错(转)

    转自(http://www.cnblogs.com/wchhuangya/archive/2009/12/25/1632160.html) 一.基本概念剖析 int* (*a[5])(int, cha ...

  4. JSON如何序列图片

    图片采用JSON格式传输的话,需要把图片转成Base64格式. 首先把图片转成流:Image1.Picture.Graphic.SaveToStream(ss);然后编码成base64格式的:Enco ...

  5. 显示MYSQL数据库信息

    显示所有的数据库:show databases 显示一个数据库所有表用:show tables from DatabaseName SELECT table_name FROM information ...

  6. HDU 2859 Phalanx (dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2859 给你一个n*n的矩阵,问你最大的对称度是多少(左下右上为对称线) dp[i][j]表示i行j列元 ...

  7. CCF 201403-1 相反数 (水题)

    问题描述 有 N 个非零且各不相同的整数.请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数). 输入格式 第一行包含一个正整数 N.(1 ≤ N ≤ 500). 第二行为 N 个用单 ...

  8. C# Control 控件DrapDrop不触发的问题

    今天在做一个鼠标拖拽功能时,需要用到PictureBox的拖拽,即拖拽一个图标到PictureBox上实现加载绘制,可是怎么整也触发不了DrapDrop事件,最后终于找到了解决方法:原来需要在Drog ...

  9. F5 会话保持

    1.什么是会话保持?在大多数电子商务的应用系统或者需要进行用户身份认证的在线系统中,一个客户与服务器经常经过好几次的交互过程才能完成一笔交易或者是一个请求的完成.由于这几次交互过程是密切相关的,服务器 ...

  10. 那些年困扰我们的委托(C#)

    委托这个东西不是很好理解,可是工作中又经常用到,你随处可以看到它的身影,真让人有一种又爱又恨的感觉,我相信许多人被它所困扰过. 一提到委托,如果你学过C语言,你一定会马上联想到函数指针. 什么是委托? ...