Войти

Показать полную графическую версию : [решено] curl в качестве REST-клиента


Тишина
12-10-2015, 22:44
Пытаюсь использовать curl в качестве REST-клиента для https-сайта с авторизацией, работающего на tomcat 7.0.52

Запускается батник

@echo off
SET DEBUG=OFF
SET COOKIES=./cookies.txt
SET USER=ADMIN
SET PASSWORD=ADMIN
SET HOST=https://some_host.some_domain:123456

@echo Authenticating......

rem тут мы авторизовываемся, авторизация норм, проверено!
curl -k -c %COOKIES% "%HOST%/path_to_login" >report.log 2>&1
curl -k -L -b %COOKIES% -c %COOKIES% -d j_username=%USER% -d j_password=%PASSWORD% "%HOST%/path_to_login_test" >>report.log 2>&1

curl -# -i -k -b %COOKIES% -c %COOKIES% -A "Mozilla/41.0" "%HOST%/some_link" > try_1.xml
curl -# -i -k -b %COOKIES% -c %COOKIES% "%HOST%/some_link" > try_2.xml

оба файла (try_1.xml и try_2.xml) содержат

HTTP/1.1 406 Not Acceptable
Server: Apache-Coyote/1.1
Cache-Control: private, max-age=0, must-revalidate
Expires: Mon, 12 Oct 2015 19:28:45 GMT
Content-Length: 0
Date: Mon, 12 Oct 2015 19:28:45 GMT


За авторизацию ручаюсь, т.к. такой же батник, но с другим URL (curl -# -i -k -b %COOKIES% -c %COOKIES% "%HOST%/some_link_OK" > try_OK.xml) выдаёт адекватную xml. Если использовать Rest-Client на Firefox и загонять туда "не работающий" url - то так же не возникает проблем с отображением (метод GET, хейдеры не используются).

кроме как использовать -A "Mozilla/41.0" ничего толкового в гуглах не подсказывают, типа загвоздка только в "представлении" curl-а.

P.S. реальные логин/пасс/линки дать не могу... к сожалению...

Тишина
13-10-2015, 10:38
Вопрос решил путём указания параметров -H и -X. Причём вопрос почему работало в первом варианте и почему не подходит ко второму - остаётся открытым.

Если задавать предыдущим линкам, с которыми не было проблемы - то отображение xml - не меняется. в итоге буду использовать вариант, представленный ниже для всех запросов отображения/сохранения xml

curl -# -i -k -b %COOKIES% -c %COOKIES% -H "Content-Type: application/x-oslc-cm-change-request+xml" -H "Accept: text/xml" -X GET "https://........"




© OSzone.net 2001-2012