nixp.ru v3.0

5 октября 2024,
суббота,
01:02:15 MSK

Миша написал 17 сентября 2020 года в 13:22 (1649 просмотров) Ведет себя неопределенно; открыл 8 тем в форуме, оставил 7 комментариев на сайте.

В общем надо мне выполнить get запрос к апишке и передать хэдэр где передаю токен свой. Сам курловый запрос работает, если выполнять в shell, но через груви никак, а мне оч. надо…

def command = "curl -L -H 'Authorization: Bearer ${some_token}' ${some_url}"
def proc = command.execute()
proc.waitFor()
println "${proc.in.text}"

Я уже как только не пробовал и так
def command = ["curl", "-L", "-H", "Authorization:", "Bearer", "${some_token}", "${some_url}"]
и даже уже пробовал впихивать везде где не алфавитные символы код аски, думал вдруг это влияет, нифига, тупо не принимает токен, получаю 401 от урла вместо ответа. Причем этот же запрос сразу срабатывает в консоли, т.е. явно что-то недонастроил в груви… Может кто-то сталкивался с таким?

ps RESTClient не предлагать, я не могу его юзать там, где мне это нужно, не получается выполнить импорт…
…..все варианты скобок, кавычек уже перепробовал, принтом проверяю что идет на исполнение, даже копировал в оболочку и запускал. Работает гадина, только не через груви…

Миша

Народ, вопрос немного меняется, в общем примерно в таком исполнении

def command = ["curl", "-L", "-D", "groovyout.txt", "-H", "Authorization: Bearer ${some_token}", "${some_url}"]


у меня теперь не ругань на проблемы с авторизацией, а просто зависание.. Пробовал на разных машинах с новым и старым груви (2.4.8 и 3.0.5). На старой машинке пишет файлик groovyout.txt, оттуда видно, что есть 200й ответ от сайта… Но я так и не получаю содержимое…

fhunter

А верхний ответ отсюда: https://stackoverflow.com/questions/159148/groovy-executing-shell-commands (со StringBuilder) не помогает?

PS. Вы запускаете процесс, (видимо через что-то типа popen), а потом не читаете вывод в процессе, только по завершению. Естественно процесс, если вывода много (больше где-то 4 килобайт, зависит от настроек ядра и опций запуска), залипнет в ожидании.
Сама команда curl из командной строки на той машине работает?

Миша

Добрый вечер! Вы абсолютно правы! Это действительно помогло. У меня и правда там «жирный» ответ приходит от апишки. Я даже натыкался на этот ответ, но увы, не от большого ума добавил этот пример без вывода ошибок и обломался… Вот сейчас на спокойную голову всё заработало. Спасибо! Пойду парсить вывод :)

Последние комментарии

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.