2013-04-09 25 views
110

Tôi đang sử dụng tiện ích dòng lệnh cURL để gửi HTTP POST tới dịch vụ web. Tôi muốn bao gồm nội dung của một tệp làm thực thể cơ thể của POST. Tôi đã thử sử dụng -d </path/to/filename> cũng như các biến thể khác có thông tin loại như --data </path/to/filename> --data-urlencode </path/to/filename> v.v ... tệp luôn được đính kèm. Tôi cần nó như là thực thể cơ thể.Cách gửi nội dung tệp dưới dạng thực thể cơ thể bằng cách sử dụng cURL

Trả lời

187

Tôi tin rằng bạn đang tìm kiếm cú pháp @filename, ví dụ .:

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

=====

curl sẽ gỡ bỏ tất cả dòng mới từ tập tin. Nếu bạn muốn gửi tệp có dòng mới nguyên vẹn, hãy sử dụng --data-binary thay cho --data

+13

Nếu bạn muốn thực sự ưa thích, bạn có thể làm: 'cat file.txt | curl --data "@ -" \ '( Breedly

+53

curl sẽ xóa tất cả các dòng mới khỏi tệp. Nếu bạn muốn gửi tệp với dòng mới nguyên vẹn, hãy sử dụng '--data-binary' thay cho' --data'. – Chris

+0

bây giờ, làm cách nào để thêm thông tin đăng nhập để cho phép yêu cầu này? – anon58192932