如何在32位,64位窗口以及Mac(VBA Excel)上创build一个http请求?

用VBA进行第一周的编程。 我正在创build一个excel插件,并将发出几个HTTP请求来获取json数据。 我需要使其跨平台,但我真的很困惑的不同品种,VBA已经/接收HTTP请求。 他们的文档不清楚在什么平台上工作。 我只有64位的Office和Windowstesting,但这需要在32位和Mac上工作。 我正在使用以下,它适用于我,但即使谷歌search后,我不知道它是否会在别处工作:

Dim myURL As String: myURL = "https://blah.com" Dim req As MSXML2.XMLHTTP60: Set req = New MSXML2.XMLHTTP60 req.Open "GET", myURL, False req.Send DEBUG.Print req.responseText 

MSXML2.XMLHTTP60可以在所有平台上工作,还是有其他我应该使用的?

32位或64位Windows 工作,因为我们有工作代码,在32位和64位DLL中调用MSXML分析器。 它已经与操作系统一起安装,至less从Windows 2000开始。

有趣的是,我也无法从Microsoftfind明确声明MSXML在32位或64位上可用的文档。 也许这是与OS一起部署的事实所暗示的。

这里有证据表明,除了我的ancedote之外,有人比较了32位和64位版本之间的性能: http ://social.msdn.microsoft.com/Forums/en-US/52330c5c-2eae-493c-9560-caf3dd21c14f/why -64bit-msxml2domdocument60 -是-多越慢,当时的32位?论坛= xmlandnetfx

Mac部分更难。 我认为MSXML的答案是“否”。

  1. 你可能会考虑条件编译 ,在Mac上使用不同的XML分析器。
  2. 其他人似乎在Excel中的QueryTables对象有一些运气,并完全绕过一个分析器。 这可能会或可能不适合您的情况。

我在XP中使用了相同的组件多年。 它应该在大多数平台上工作,除非你想要支持遗留系统。

从微软的Xml团队date2006年10月23日6:01 PM

  • 使用MSXML 6.0 – 它在Vista中是“在盒子里”,可以在Win2k,XP和2003下载。它具有最好的安全性,性能,可靠性和W3C一致性MSXML 3.0是我们的首选“后备” – 安装在完全打补丁的Win2k SP4安装的每个操作系统上,所以它需要“零部署”,并定期与操作系统
  • 大约5年前,MSXML 4.0已经发布到networking上,但是现在已经被MSXML 6.0所取代,仅用于支持遗留应用程序
  • 适用于Microsoft Office Applications的MSXML 5.0专为Office应用程序构build,不适用于广泛部署。 Internet Explorer 7在Internet区域中实际上具有“默认情况下”的MSXML5组件,因此,如果您的代码尝试实例化,那么您的客户将在页面上为每个MSXML5控件获取一个金条。 最好的build议是避免在您的Web应用程序中使用MSXML5(无论如何,只有拥有Office 2003或更高版本的机器才能拥有它)。