2

我想使用 Windows 登录中的 Kerberos 票证向带有 VBA 的 Java servlet 发送 POST 请求以进行身份​​验证,然后从 servlet 检索 JSON 响应。我可以在不使用 InternetExplorer 对象(例如使用 WinHttpRequest)的情况下实现这一点吗?

4

1 回答 1

4

WinHttpRequest不是 IE 对象。只要您设置放宽安全权限,上述用例就可以完美运行。去年我实现了一个概念验证:Excel、VBA、REST、Tomcat、SPNEGO 身份验证。

存根代码:

Dim winHttp As Object
Set winHttp = CreateObject("WinHttp.WinHttpRequest.5.1")

winHttp.SetAutoLogonPolicy (0)
winHttp.Open "GET", "http://..."
winHttp.send

Dim success As Boolean
success = winHttp.waitForResponse(5)
If Not success Then
    Debug.Print "DOWNLOAD FAILED!"
    Exit Sub
End If

Dim responseText As String
responseText = winHttp.responseText
于 2014-06-16T21:07:26.720 回答