Получение ошибки curl: (3) Номер порта завершился на «» при выполнении curl POST из bash-скрипта - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь выполнить curl из скрипта bash и при запуске команды POST curl возвращает curl: (3) Номер порта завершился с ошибкой ''.

, например, script.sh содержит следующий curl

curl -k -X -H "тип содержимого: application / json" POST -d '{\ "test_field \": \ "test.com \", \ "head \": \ "-----BEGIN REQUEST ----- \ nMIICvzCCAacCAQAwejgVPmU0J / BUbIuyOC5KXMYkc2KqggRBLpLdKs8ODo5cVKzVa7UOmNGRdGncM1WC0HHnn8E47fYnjmn72WQ94L1kBqJuM + olYbOtyop84lmYo0LTm0DH / w4DBlzUdp4 Z8EYFuRtv1En2TkJ6YxI86z7Bwc / I20HPZPQYEQ4v = \ п ----- END CERTIFICATE REQUEST ----- \ "}» https://mytestserver/v1/testfield

1007 * Это приводит к
curl: (3) Номер порта оканчивается на '' curl: (6) Не удалось разрешить хост: POST {"errors": []}

Если я выполню то же самое из почтальона с таким же содержимым тела, как оновыполнить успешно.

Содержание ----- BEGIN REQUEST ----- \ nMIICvzCCAacCAQAwejgVPmU0J / BUbIuyOC5KXMYkc2KqggRBLpLdKs8ODo5cVKzVa7UOmNGRdGncM1WC0HHnn8E47fYnjmn72WQ94L1kBqJuM + olYbOtyop84lmYo0LTm0DH / w4DBlzUdp4 Z8EYFuRtv1En2TkJ6YxI86z7Bwc / I20HPZPQYEQ4v = \ п ----- ----- КОНЕЦ ЗАПРОС

имеет пробел и / специальный символ.Я пытался избежать этого, но безуспешно.Может ли кто-либо с опытом работы с bash-скриптом помочь / подсказать, что не так в этом скрипте?

1 Ответ

0 голосов
/ 27 сентября 2019

Сообщение об ошибке указывает, что аргумент 'POST' ошибочно принимается за имя хоста.Скорее всего, потому что Curl ожидает, что '-X' будет сопровождаться командой (http).

Как указано в справочной странице curl: Обычно эта опция не нужна.Все виды запросов GET, HEAD, POST и PUT скорее всего запускаются с использованием выделенных параметров командной строки .

. Рассмотрим один из вариантов:

curl -k -X POST -H 'content-type: ...' -d '{ ...}' https://mytestserver/...

ИЛИ, позволяя curl делатьэто волшебство: РЕКОМЕНДУЕТСЯ

curl -k -H 'content-type: ...' -d '{ ...}' https://mytestserver/...
...