首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel VBA -使用代理发出HTTP请求

Excel VBA -使用代理发出HTTP请求
EN

Stack Overflow用户
提问于 2019-08-31 03:15:14
回答 1查看 1.5K关注 0票数 0

我正试图在我办公室的Excel中使用VBA发出HTTP请求,但它不起作用。我的办公室网络使用代理连接到internet,因此http请求不会直接到达所请求的URL。

我在没有代理的情况下在家里尝试了以下代码(不使用代理进行连接的代码),它工作得很好。

当我在代码中设置代理(请参阅通过代理服务器连接的代码)并在我的办公室运行它时,它总是在没有到达请求的页面时超时。你能告诉我我的代码哪里错了以及如何修复它吗?请注意,我的办公网络使用的是一个PAC文件,我可以下载该文件,其中包含函数FindProxyForURL(url,主机)。我从那里得到了代理服务器地址。

代码语言:javascript
复制
'Code to connect without proxy

Dim WHTTP As WinHttp.WinHttpRequest

Set WHTTP = New WinHttp.WinHttpRequest
WHTTP.Open "GET", "http://www.google.com", False
WHTTP.Send
x = WHTTP.ResponseText
Debug.Print x


'Code to connect via a proxy server

Dim WHTTP As WinHttp.WinHttpRequest
Dim proxy As String

Set WHTTP = New WinHttp.WinHttpRequest
proxy = "myoffice_proxy_IP:80"
WHTTP.Open "GET", "http://www.google.com", False
WHTTP.SetProxy HTTPREQUEST_PROXYSETTING_PROXY, proxy, ""
WHTTP.Send
x = WHTTP.ResponseText
Debug.Print x
EN

回答 1

Stack Overflow用户

发布于 2020-01-17 00:28:41

HTTPREQUEST_PROXYSETTING_PROXY是一个常量,你必须定义它。例如,这是WHTTP.SetProxy命令可以接受的所有值:

代码语言:javascript
复制
HTTPREQUEST_PROXYSETTING_DEFAULT   = 0
HTTPREQUEST_PROXYSETTING_PRECONFIG = 0
HTTPREQUEST_PROXYSETTING_DIRECT    = 1
HTTPREQUEST_PROXYSETTING_PROXY     = 2
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57732162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档