WinHTTP 请求失败(超时)。为什么?
WinHTTP Request fails (timeout). Why?
因此,我正在尝试使用 WinHttpRequest class.
从 VBA 向 http 服务器发送请求
我已经编写了一个类似的代码,可以将请求发送到另一台服务器,而且它可以正常工作。这个甚至不会通过“.Send”。失败(超时)。
我检查了 Google Chrome devtools 上的每个 RequestHeader 并尝试复制网络请求,但失败了(有和没有 cookie)。
有什么想法吗?
代码:
Dim WHTTP As New WinHttp.WinHttpRequest
With WHTTP
.Open "GET", "https://contactcenter-prd.prosodie.com/prweb/sso", False
.SetRequestHeader "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"
.SetRequestHeader "Accept-Encoding", "gzip, deflate, br"
.SetRequestHeader "Accept-Language", "pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7"
.SetRequestHeader "Connection", "keep-alive"
'.SetRequestHeader "Cookie", "JSESSIONID=337C72E2DBCC1080C674033FFC51EBFA.contactcenter; Pega-RULES=" & Chr(34) & "{atn}e3ByfVkzNDBlc3NYRlBYdWFRT2dkRFRjekU5LytjNm51MEMwazI4YmJqVDNvaFlUTE1LQUN3T1p6SUVYMEd5dlUxaHRSWEVINFpJTWVhY1YKdCtpRkQwZjJLdz09" & Chr(34) & "; BWROUTEID=s2ac70d938fbd5ee39c5b1b93ac33d7b.1"
.SetRequestHeader "Host", "contactcenter-prd.prosodie.com"
.SetRequestHeader "Upgrade-Insecure-Requests", "1"
'.SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36" ' From Chrome
.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" ' Some guy said it would work (it didn't)
'.SetTimeouts 1200000, 1200000, 1200000, 1200000
.Send
End With
编辑:
宏的目的是进入网站,获取一些信息,将信息放入工作表并退出网站。
我知道 URL 重定向到另一个,但是(我认为)我 必须 去第一个网站获取一些 cookie。
编辑 2:
问题已解决。
我必须设置代理才能使用该网站。
.SetProxy 2, myProxy
成功了!
问题已通过使用 .SetProxy 2, <i>proxy</i>
.
解决
因此,我正在尝试使用 WinHttpRequest class.
从 VBA 向 http 服务器发送请求我已经编写了一个类似的代码,可以将请求发送到另一台服务器,而且它可以正常工作。这个甚至不会通过“.Send”。失败(超时)。
我检查了 Google Chrome devtools 上的每个 RequestHeader 并尝试复制网络请求,但失败了(有和没有 cookie)。
有什么想法吗?
代码:
Dim WHTTP As New WinHttp.WinHttpRequest With WHTTP .Open "GET", "https://contactcenter-prd.prosodie.com/prweb/sso", False .SetRequestHeader "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8" .SetRequestHeader "Accept-Encoding", "gzip, deflate, br" .SetRequestHeader "Accept-Language", "pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7" .SetRequestHeader "Connection", "keep-alive" '.SetRequestHeader "Cookie", "JSESSIONID=337C72E2DBCC1080C674033FFC51EBFA.contactcenter; Pega-RULES=" & Chr(34) & "{atn}e3ByfVkzNDBlc3NYRlBYdWFRT2dkRFRjekU5LytjNm51MEMwazI4YmJqVDNvaFlUTE1LQUN3T1p6SUVYMEd5dlUxaHRSWEVINFpJTWVhY1YKdCtpRkQwZjJLdz09" & Chr(34) & "; BWROUTEID=s2ac70d938fbd5ee39c5b1b93ac33d7b.1" .SetRequestHeader "Host", "contactcenter-prd.prosodie.com" .SetRequestHeader "Upgrade-Insecure-Requests", "1" '.SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36" ' From Chrome .SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" ' Some guy said it would work (it didn't) '.SetTimeouts 1200000, 1200000, 1200000, 1200000 .Send End With
编辑:
宏的目的是进入网站,获取一些信息,将信息放入工作表并退出网站。
我知道 URL 重定向到另一个,但是(我认为)我 必须 去第一个网站获取一些 cookie。
编辑 2:
问题已解决。
我必须设置代理才能使用该网站。
.SetProxy 2, myProxy
成功了!
问题已通过使用 .SetProxy 2, <i>proxy</i>
.