Znalazłem wiele przykładów używania prostych poleceń POST w cURL, ale nie znalazłem przykładów wysyłania pełnych poleceń POST HTTP, które zawierają:
- Nagłówki (podstawowe uwierzytelnianie)
- Parametry HTTP (
s=1&r=33
) - Body Data, jakiś ciąg XML
Znalazłem tylko:
echo "this is body" | curl -d "ss=ss&qq=11" http://localhost/
To nie działa i wysyła parametry HTTP jako treść.
--header
i ten nie robiOdpowiedzi:
Nie ma wystarczającej reputacji, aby móc komentować, więc zostaw to jako odpowiedź, mając nadzieję, że to pomoże.
Tego właśnie użyłem do operacji acl put S3 bucket. Nagłówki są w -H, a treść będąca plikiem xml w $ {aclfile} po -T. Możesz to zobaczyć na podstawie danych wyjściowych:
jeśli parametry adresu URL zawierają specjalne znaki, takie jak „+”, użyj --data-urlencode dla każdego parametru (zawierającego znaki specjalne):
źródło
„Parametry” HTTP są częścią adresu URL:
Uwierzytelnianie podstawowe ma osobną opcję, nie ma potrzeby tworzenia niestandardowego nagłówka:
„Treść” POST może zostać wysłana za pośrednictwem
--data
(forapplication/x-www-form-urlencoded
) lub--form
(formultipart/form-data
):Podsumowując:
źródło