在此代码snipet示例中......
Dim pullSite As String
Dim pullXMLHTTP As MSXML2.XMLHTTP
Set pullXMLHTTP = New MSXML2.XMLHTTP
pullSite = "http://www.ThisIsASite.com/Documents/whatever........xml"
pullXMLHTTP.Open "POST", strXMLSite, False
...我在代码中遇到单词Open,我认为这是一种方法,因为它不等于任何东西(在左下角的OB屏幕中,一旦选择它说它是一个Sub但是我休息我的情况在OB命名方法上作为Sub和Function-我想它想说这是一个类浏览器所以我们将方法声明为Sub或Function就像我们“自定义”在类模块中制作它们但我不确定那样) 。如果我转到MSXML2库中的对象浏览器,我将在XMLHTTP中找到作为成员列出的Open。
好吧,如果我点击F1 VBA的帮助有3个选择。第一选择(VBA库)一个告诉我这是开放声明,显然不是。
第二个选项(Excel库)有一个 RecentFile .Open方法没有参数,因此它也不会购买。
第三个选项(Office Library)为我提供了Developer Reference主菜单。
因此,F1 VBA的Auto帮助对MSXML2库没有任何帮助。但是在OB的左下角,如果我从MSXML2.XMLHTTP库中选择Open Member,则说明
Sub open(bstrMethod As String, bstrUrl As String, [varAsync], [bstrUser], [bstrPassword])
Member of MSXML2.XMLHTTP
Open HTTP connection
所以我的问题是双重的
是否有一个可靠的帮助来详细记录MSXML2库的成员/或者在VBA的Autohelp上添加它? (顺便说一句,微软MSXML开发中心MSXLM是庞大而模糊的。我也相信它指向经验丰富的暗示......
为什么我在使用MSXML2.HTTP Open成员的相关示例中看到,第一个字符串参数始终填充了单词“POST”in上限字母?这让我难以置信 - 他们不能使用另一个String值吗?
在@codeape提交的答案之后:
亲爱的代码,所以根据你的回答,我们有
open Method (IXMLHTTPRequest)
并且现有VBA示例中的参数(MS缺少) all-together 形成IXMLHTTPRequest,因此:
Open methods Paramenters --> IXMLHTTPRequest
请确认这是否属实,以便我会在更方便用户使用的所有已确认的说明中编辑此帖子,供其他人使用。
此外,我无法帮助我的好奇心为什么我们在IXMLHTTPRequest命名中有 I ?只是想知道...
关于POST问题感谢您的回答我用Google搜索了HTTP方法,并在W3Schools中找到了这个简洁的链接,这在很大程度上向我解释。真的为什么不使用GET?它看起来更快速...而不是提交要由指定源处理的数据(使用POST)只需要在一个笔划中请求来自指定源的数据,它看起来更加迅速和简单......
Oooups我差点忘了在你给我的开放方法链接以及OB的底部我们看到bstrMethod As String,bstrUrl As String等。你能告诉我 bstr 是什么意思吗? - BSTR是指基本字符串还是二进制字符串?请确认
答案 0 :(得分:0)
可悲的是,在记录各种COM库时,MS似乎忘记了VBA。大部分/全部文档适用于C ++和javascript。
对问题中提到的其他事项的评论:
关于HTTP方法(GET,POST等):
当您在浏览器的URL栏中键入URL时,浏览器会向服务器发送GET请求。因此,如果您想使用MSXML.XMLHTTP获取网页,请执行以下操作:obj.Open "GET", "http://www.google.com"
当您从浏览器提交HTML表单时,浏览器可以根据<form>
标记的方法属性发送GET或POST请求。 <form method="GET">
(默认值)或<form method="POST">
。
bstrMethod
等:这是hungarian notation,其中参数的预期类型反映在参数的名称中,以使开发人员更容易。 bstr
表示此参数是COM“basic string”。 COM通常用于unicode字符串的基本字符串。在VBA中,您可以使用常规VBA字符串,其中方法需要bstr。