
Я просто не могу понять, почему все мои попытки терпят неудачу. Я пытаюсь использовать curl для отправки POST-запроса с json на определенный URL, когда путь к JSON определен как переменная:
#!/bin/sh
JSON_TMP=/home/aaa/jsons/make_6h_from_1h.json
curl -X POST -H "Content-Type: application/json" --data-binary "@${JSON_TMP}" http://some-url
Что бы я ни пробовал (использовать "@${JSON_TMP}"
или "@$JSON_TMP"
что @"${JSON_TMP}"
-то еще), ничего не помогает!
Что еще больше раздражает, так это то, что нет никаких сообщений об ошибках или чего-то еще - я просто запускаю команду и получаю приглашение снова. На другом конце я вижу, что json не был отправлен.
решение1
Следующие работы:
body_arg=(--data-binary @${filePath})
curl -X POST -H "Content-Type: application/json" "${body_arg[@]}" http://some-url
решение2
curl -X POST -i -H "Accept: application/json" -H "Content-Type: application/json" --data-binary --data-binary @${JSON_TMP} http://some-url
Попробуйте удалить двойные кавычки в @${JSON_TMP}