Member 10093180 Ответов: 0

Vba-WEB не может авторизоваться с помощью httpbasic authenticator


Привет

Я пытаюсь использовать VBA-Web для отправки REST API через Excel VBA и сталкиваюсь с проблемами

GitHub - VBA-tools/VBA-Web: VBA-Web: подключение VBA, Excel, Access и Office для Windows и Mac к веб-службам и интернету[^]

Private Sub Worksheet_Activate() 
Dim Client As New WebClient 
Dim Request As New WebRequest 

Client.TimeoutMs = 30000 ' 30 seconds

Client.BaseUrl = "https://postman-echo.com/basic-auth"
'Client.BaseUrl = "https://rest.reviso.com/customers?demo=true"
Request.Format = WebFormat.Json

Dim Auth As New HttpBasicAuthenticator
Auth.Setup _
Username:="postman", _
Password:="password"


Dim Response As WebResponse
Set Response = Client.Execute(Request)

If Response.StatusCode <> Ok Then
    Sheets("Test").Range("A1") = Response.StatusDescription
    Exit Sub
End If

Dim Json As Object
Set Json = WebHelpers.ParseJson(Response.Content)

FillData Json
End Sub


Спасибо!

Что я уже пробовал:

Я попытался изменить этот пример, чтобы использовать HttpBasicAuthenticator, но безуспешно, он говорит об ошибке HTTP 401. Когда я использую почтальона, чтобы отправить запрос на отдых, это нормально.

АПИ-образцы/отдых/Excel на мастер · revisohq/АПИ-образцы · в GitHub[^]

Если я использую этот Url-адрес, то мне не нужно проходить аутентификацию. Он работает как и ожидалось

https://rest.reviso.com/customers?demo=true[^]

F-ES Sitecore

Использовать такой инструмент, как Fiddler, для просмотра сетевых вызовов. Сравните звонок, сделанный из вашего кода, с тем, который сделал мой почтальон, и найдите различия.

Member 10093180

Спасибо за ваш комментарий. Я попробовал использовать Fiddler, и сделанный запрос VBA не появился в отладчике. Где как почтальон делал. Какой-либо причине, почему?

F-ES Sitecore

Это может быть связано с настройками прокси-сервера, поскольку fiddler настраивает себя как прокси-сервер, а код VBA может игнорировать настройки прокси-сервера. Вместо этого вы можете использовать wireshark, который работает на сетевом уровне и захватывает все, что происходит через сетевой драйвер. Однако он не так удобен для пользователя, как fiddler.

0 Ответов