使用默认凭据通过代理从Excel中获取http请求

我想从一个网站(某种types的webrequest),从Excel中获取数据,只有问题我坐在代理后面,我不想硬编码的用户名和密码。

有没有办法获得默认的代理服务器,并设置当前用户的凭据,而不用硬编码?

换句话说:我想用代理与当前loginWindows机器的用户进行身份validation。

这是相关的代码:

Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP.6.0") URL = "http://stackoverflow.com/" objHTTP.Open "GET", URL, False 'If possible i would like to get the default proxysettings objHTTP.setProxy 2, "proxy:8282" 'I dont wont to set this line objHTTP.setProxyCredentials "username", "password" objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" objHTTP.send ("") 

我GOOGLE了,但我可以find一个明确的否,或一个替代解决scheme。

它应该在Windows环境下运行。 任何帮助和/或提示将不胜感激。

目前我找不到更好的东西,但是这是一个快速和“脏”的解决scheme,它适用于“标准”组件。

由于代理服务器是为Internet Explorer设置的,因此每个用户都可以使用

1)添加一个Webbrowser控件

在这里输入图像说明 在这里输入图像说明

2)设置控件的属性
名称:浏览器, 可选更改大小,它不会是可见的或如此

在这里输入图像说明

3)使用浏览器控制将此代码写入工作表

 Private Sub browser_DocumentComplete(ByVal pDisp As Object, URL As Variant) Debug.Print browser.Document.body.innerHTML End Sub Private Sub Worksheet_Activate() browser.Navigate "stackoverflow.com" End Sub ' Tested on Win7 with Excel 2010 

该代码有时反应有点flakey(JavaScript错误,…),但它使用代理和login用户。

更新1:

对于Internet Explorer没有代理设置的其他场景,可以通过使用registry项设置代理来解决这个问题(非常脏的解决方法)

 HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer 

虽然为了这个工作,应用程序将不得不终止所有运行的IE浏览器,然后启动浏览器。

免责声明: 我没有这样做(这只是我的一个想法),因为我的需要上述解决scheme已经足够了,在我看来,非常激进/危险,可以/应该是一个更好的方法。