Ссылка вида: https://test.ru/10.05.2020&type=json 1. Используя браузер (Chrome или другой) перехожу по ссылке выше, происходит автоматическая авторизация. Второй раз перехожу по ссылке выше - получаю результат вида:
Код
40
50
60
2. Используя Excel (Данные - Создать запрос - Из других источников - Из интернета) - получаю некорректный ответ.
3. Используя Excel (Даные - Получение внешних данных - Из интернета (открывается окно IE) - вставляю ссылку выше - авторизация - еще раз вставляю - результат корректен.
Есть ли возможность дважды перейти по ссылке в одном шаге вэб-запроса power query? Очень пытался. Не смог. Аналогичная проблема была рассмотрена здесь: ссылка. 10 лет прошло. Возможно есть более простое решение.
Цитата
есть сайт на который вход осуществляется путём авторизации через ЕЦП (сертификат)
let
Source = Web.Contents(
"https://dwweb.ru/404.html", //Случайный сайт в интернете с переадресацией
[ManualStatusHandling={404}]),
GetMetadata = Value.Metadata(Source),
GetResponseStatus = GetMetadata[Response.Status],
Output = if GetResponseStatus=404 then "Error!" else Source //Иначе повторить этот же запрос заново с учетом кэша полученного при первом входе
in
Output
Странно, что никакой точной информации написанной примитивным языком для обычного пользователя нет в интернете. Ведь переадресация на страницах сайтов не редко встречается.
Печально, что этот вопрос не решить без реального сайта.
Ок. Начал разбираться дальше. Получилось написать макрос Excel. Он работает, но вот с PQ Excel - проблема. Кусок макроса:
Код
Set objHTTP = CreateObject("Msxml2.XMLHTTP.6.0")
objHTTP.Open "POST", URL, False
objHTTP.Send ("")
result = objHTTP.responseText
Результат: Bearer токен получен.
А вот для Power Query сделать аналогичные действия не получается. Попыток было много.
Код
let
url = "https://...",
options = [Headers=[#"Accept"="application/json"], Content=Text.ToBinary("")],
response = Web.Contents(url, options)
in
response
Проблема заключается в том, что PQ пишет ошибку. Якобы для POST запроса c Content доступ только при анонимных подключениях, но подключение не анонимно с самого начала. Что делать?
Это как пример. Попытки были с различными параметрами. Content=null, Content=“”. Вопрос в отправке POST запроса без использования анонимного соединения. Та же проблема что и на скриншоте выше.
Да, тоже пробовал. Но в описании к API сказано, что должен быть отправлен именно POST запрос, а без указания этого параметра (Content) всегда отправляется GET запрос.
Игорь, углубился еще. Похоже используя NTLM Windows аутентификацию и отправить POST запрос невозможно. Сразу требуются условия API ключ или авторизация с использованием логина и пароля в коде запроса.
Буду пытаться сделать через Basic аутентификацию с использованием логина и пароля.