VBA用于“HTTP GET”请求,通过未知代理?

时间:2014-07-25 04:02:37

标签: vba excel-vba httprequest winsock winhttp

简单地说,我正在尝试编写一些Excel VBA代码,以便在特定任务成功时“通知”Web服务器。

我认为与我的网络服务器接口的最简单方法是通过“HTTP GET”请求。

假设这是真的,我使用库“Microsoft WinHTTP Services”取得了一些成功。但是,这不适用于我公司的代理。

经过几个星期的忽视之后我又回到了这个问题,希望人们会忘记它(!)并且不记得我曾经尝试过的每一步抱歉,但是从记忆中:我已经看到了我能在哪里使用WinHTTP时指定我的代理设置,但我无法解决的是如何读取我当前的代理设置(即我不知道我的代理设置的情况)

原因是,这个工具必须适用于一家全球性的公司:因此,如果没有为世界不同地区使用的代理设置构建某种查找表(以及维护它的头痛),我需要阅读当前代理设置或使用其他方法。

有人建议的另一种方法是使用WinSock API。我不是特别对API调用(除非我可以谷歌并窃取其他人的!)而且我找不到使用WinSock进行HTTP GET请求的示例。 WinSock文档比我的技能组合更接近金属!

有人可以帮助:

  • 建议我如何阅读当前的代理设置以便输入WinHTTP或
  • 帮助我使用其他方法,也许使用WinSock

非常感谢你的帮助,

西蒙

1 个答案:

答案 0 :(得分:1)

您可以尝试使用MSXML2 v6.0中的XMLHTTP60对象(或早期版本的等效对象)。这是一个客户端对象,应该发现自己的代理设置。

添加对“Microsoft XML,v6.0”的引用,然后它就像:

一样简单
Dim xhrRequest As XMLHTTP60

Set xhrRequest = New XMLHTTP60
xhrRequest.Open "GET", "<URL goes here>", False
xhrRequest.send

有关MSDN here

的更多信息