Excel 具有凭据的VBA httpWebRequest
我需要从云服务获取一些数据 这是我目前的代码:Excel 具有凭据的VBA httpWebRequest,excel,vba,Excel,Vba,我需要从云服务获取一些数据 这是我目前的代码: Option Explicit Sub Test() Call GetHTTPResult("https://venice.unit4.com/WebConnect/api/ZZKlesserRob/2017/Balance/GetBalance?AccountNumber=604&BeginMonth=1&EndMonth=1", "username", "password") End Sub Function GetHTT
Option Explicit
Sub Test()
Call GetHTTPResult("https://venice.unit4.com/WebConnect/api/ZZKlesserRob/2017/Balance/GetBalance?AccountNumber=604&BeginMonth=1&EndMonth=1", "username", "password")
End Sub
Function GetHTTPResult(sURL As String, Optional username As String, Optional password As String) As String
Dim XMLHTTP As Object, sResult As String
Set XMLHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
username = "dummy"
password = "dummypass"
XMLHTTP.Open "GET", sURL, False
XMLHTTP.setRequestHeader "Authorization", "Basic" & Base64Encode("username" & ":" & "password")
XMLHTTP.Send
Debug.Print "Status: " & XMLHTTP.Status & " - " & XMLHTTP.StatusText
sResult = XMLHTTP.ResponseText
GetHTTPResult = sResult
Set XMLHTTP = Nothing
End Function
如果没有凭据,它会给我“401-Unauthorized”-响应,我想这很好
不过,我确实有必要的凭证可供使用,但我似乎无法解决Base64
编码带来的问题
我该怎么办
提前谢谢 通过检查,我认为您的授权
标题中缺少空格
:
var request = new XMLHttpRequest();
...
request.setRequestHeader("Accept","application/xml");
request.setRequestHeader("Authorization","Basic " + Base64.encode ("User:Password"));
因此,你应该阅读:
XMLHTTP.setRequestHeader "Authorization", "Basic " & Base64Encode(username & ":" & password)
此外,您应该使用application/xml
或application/json
向请求添加Accept
头,以指定请求数据的格式