Я нашел много примеров того, как использовать простые команды POST в cURL, но я не нашел примеров того, как отправлять полные команды HTTP POST, которые содержат:
- Заголовки (базовая аутентификация)
- HTTP-параметры (
s=1&r=33
) - Данные тела, некоторая строка XML
Все, что я нашел, это:
echo "this is body" | curl -d "ss=ss&qq=11" http://localhost/
Это не работает, и он отправляет параметры HTTP как тело.
--header
а этот - нетОтветы:
Не достаточно репутации, чтобы комментировать, поэтому оставьте это как ответ, надеясь, что это поможет.
Это то, что я использовал для операции S3 Bucket S3. Заголовки находятся в -H, а тело, которое представляет собой XML-файл, находится в $ {aclfile} после -T. Вы можете видеть это из вывода:
если параметры URL содержат специальные символы, такие как «+», используйте --data-urlencode для каждого параметра (содержащего специальные символы):
источник
HTTP-параметры являются частью URL:
Обычная аутентификация имеет отдельную опцию, нет необходимости создавать собственный заголовок:
«Тело» POST может быть отправлено через
--data
(дляapplication/x-www-form-urlencoded
) или--form
(дляmultipart/form-data
):Итак, подведем итог:
источник