Korzystam z narzędzia wiersza polecenia cURL, aby wysłać HTTP POST do usługi internetowej. Chcę zawrzeć zawartość pliku jako jednostkę treści POST. Próbowałem używać, -d </path/to/filename>
podobnie jak innych wariantów, informacji typu, takich jak --data </path/to/filename> --data-urlencode </path/to/filename>
itp. ... plik jest zawsze dołączany. Potrzebuję tego jako bytu ciała.
207
cat file.txt | curl --data "@-" `(< url.txt )`
@-
każe curl czytać ze standardowego wejścia. Możesz także użyć przekierowania,(< x.txt )
aby wstawić cokolwiek chcesz. Jeśli używasz bash.--data-binary
zamiast--data
.name:value
par, takich jak nazwa użytkownika i hasło, dodaj niezbędne nagłówki zgodne z oczekiwaniami usługi:--header: "<header_name>:<header_value>"
jako pojedynczy ciąg.Wiem, że pytanie zostało udzielone, ale w moim przypadku próbowałem wysłać zawartość pliku tekstowego do interfejsu Slack Webhook i z jakiegoś powodu powyższa odpowiedź nie zadziałała. Tak czy inaczej, oto co w końcu zrobiło dla mnie lewę:
źródło
curl: argument list too long
w takim przypadku zaakceptowaną odpowiedzią jest oszczędzanie życiacurl --data "@/path/to/filename" http://...