Страницы: 1
RSS
Получение данных вэб-запросом PQ, Двойная авторизация
 
Ссылка вида: https://test.ru/10.05.2020&type=json
1. Используя браузер (Chrome или другой) перехожу по ссылке выше, происходит автоматическая авторизация. Второй раз перехожу по ссылке выше - получаю результат вида:
Код
40
50
60
2. Используя Excel (Данные - Создать запрос - Из других источников - Из интернета) - получаю некорректный ответ.

3. Используя Excel (Даные - Получение внешних данных - Из интернета (открывается окно IE) - вставляю ссылку выше - авторизация - еще раз вставляю - результат корректен.

Есть ли возможность дважды перейти по ссылке в одном шаге вэб-запроса power query? Очень пытался. Не смог.
Аналогичная проблема была рассмотрена здесь: ссылка. 10 лет прошло. Возможно есть более простое решение.
Цитата
есть сайт на который вход осуществляется путём авторизации через ЕЦП (сертификат)
EducatedFool  
 
Не видя реального адреса сайта (не имея возможности протестировать), вряд ли возможно помочь в вашем случае.
 
Игорь, реальный сайт предоставить не могу.
Нашел статьи касающиеся этой темы:
Нужно что-то похожее:
Код
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 доступ только при анонимных подключениях, но подключение не анонимно с самого начала. Что делать?

Аналогичная проблема и здесь: https://stackoverflow.com
Изменено: bugser - 22.06.2023 18:19:46
 
А зачем вы это указываете: Content=Text.ToBinary("")
если никаких данных не передаёте?
 
Это как пример. Попытки были с различными параметрами. Content=null, Content=“”. Вопрос в отправке POST запроса без использования анонимного соединения. Та же проблема что и на скриншоте выше.
 
А была попытка ВООБЩЕ БЕЗ УКАЗАНИЯ этого параметра?
 
Да, тоже пробовал. Но в описании к API сказано, что должен быть отправлен именно POST запрос, а без указания этого параметра (Content) всегда отправляется GET запрос.
 
Игорь, углубился еще. Похоже используя NTLM Windows аутентификацию и отправить POST запрос невозможно.
Сразу требуются условия API ключ или авторизация с использованием логина и пароля в коде запроса.

Буду пытаться сделать через Basic аутентификацию с использованием логина и пароля.
Страницы: 1
Наверх