2013-04-09 18 views
110

Używam narzędzia wiersza poleceń cURL do wysyłania HTTP POST do usługi sieciowej. Chcę dołączyć zawartość pliku jako treść obiektu POST. Próbowałem używać -d </path/to/filename>, a także innych wariantów z informacjami o typie, takimi jak --data </path/to/filename> --data-urlencode </path/to/filename> itd ... plik jest zawsze dołączony. Potrzebuję tego jako ciała.Jak wysłać zawartość pliku jako encję ciała za pomocą cURL

Odpowiedz

187

wierzę szukasz składni @filename, np .:

curl --data "@/path/to/filename" http://... 

=====

pozwijane obetnie wszystkie znaki nowej linii z pliku. Jeśli chcesz wysłać plik z nienaruszonymi znakami nowej linii, użyj --data-binary zamiast --data

+13

Jeśli chcesz być naprawdę wymyślny, możesz zrobić: 'cat file.txt | curl --data "@ -" \ '( Breedly

+53

curl usunie wszystkie znaki nowej linii z pliku. Jeśli chcesz wysłać plik z nienaruszonymi wierszami, użyj '--data-binary' zamiast' --data'. – Chris

+0

jak dodać dane logowania do autoryzacji tego żądania? – anon58192932

Powiązane problemy