Похоже, что .SetCredentials
не является членом объекта XMLHTTP
, который вы используете. У меня есть два предложения.
1) использовать другой объект, такой как объект WinHttpRequest
:
With CreateObject("WinHttp.WinHttpRequest.5.1")
.Open "POST", webServiceURL, False
.SetRequestHeader actionType, targetWord
.SetRequestHeader actionType2, targetWord2
.SetCredentials "UserID", "Password", 0
.Send
If .Status = 200 Then
Debug.Print .responseText
Else
MsgBox .Status & ": " & .StatusText
End If
End With
2) Если вы должны использовать объект XMLHTTP
, попробуйте установить учетные данные в вызов метода .Open
и избавление от строки .SetCredentials
.
With CreateObject("Microsoft.XMLHTTP")
.Open "POST", webServiceURL, False, "UserID", "Password"
.SetRequestHeader actionType, targetWord
.SetRequestHeader actionType2, targetWord2
.Send
If .Status = 200 Then
Debug.Print .responseText
Else
MsgBox .Status & ": " & .StatusText
End If
End With
Редактировать:
Швы, как первый вариант, - путь к go для вас. Теперь я считаю, что вам просто нужно отправить через тело JSON, что хочет ваш API. На самом деле, вам, вероятно, даже не нужно устанавливать учетные данные, если так работает API. Глядя на вашу команду -curl
, вы должны попробовать ....:
With CreateObject("WinHttp.WinHttpRequest.5.1")
.Open "POST", webServiceURL, False
.SetRequestHeader actionType, targetWord
.SetRequestHeader actionType2, targetWord2
.Send "{""UserId"": ""ID"", ""Password"": ""PW""}"
If .Status = 200 Then
Debug.Print .responseText
Else
MsgBox .Status & ": " & .StatusText
End If
End With