Tôi đang cố gắng để vượt qua cat
đầu ra cuộn tròn:ống sử dụng cho dữ liệu curl
$ cat file | curl --data '{"title":"mytitle","input":"-"}' http://api
Nhưng input
là nghĩa đen một -
.
Tôi đang cố gắng để vượt qua cat
đầu ra cuộn tròn:ống sử dụng cho dữ liệu curl
$ cat file | curl --data '{"title":"mytitle","input":"-"}' http://api
Nhưng input
là nghĩa đen một -
.
Hãy thử
curl --data '{"title":"mytitle","input":"'$(cat file)'-"}' http://api
tôi đã dành một thời gian cố gắng để con số này ra và nhận nó làm việc như sau:
cat data.json | curl -H "Content-Type: application/json" -X POST -d @- http://api
vấn đề là nội dung của tệp sẽ là giá trị của 'đầu vào' trong dữ liệu JSON. – Michelle
Bạn có thể sử dụng các tập tin stdin huyền diệu /dev/stdin
cat data.json | curl -H "Content-Type: application/json" -X POST -d "$(</dev/stdin)" http://api
Điều này cũng sẽ hoạt động
curl -H "Content-Type: application/json" -d @data.json http://api
Sử dụng lực lượng d cuộn tròn để sử dụng ngầm POST cho yêu cầu.
Curl documentation for -d
option
Nếu bạn bắt đầu các dữ liệu bằng chữ @, phần còn lại phải là một tên tập tin để đọc dữ liệu từ, hoặc - nếu bạn muốn curl để đọc dữ liệu từ thiết bị nhập chuẩn. Nhiều tệp cũng có thể được chỉ định. Việc đăng dữ liệu từ một tệp có tên 'foobar' do đó sẽ được thực hiện với -d, --data @foobar. Khi --data được yêu cầu đọc từ một tập tin như vậy, trả về vận chuyển và dòng mới sẽ bị loại bỏ. Nếu bạn không muốn ký tự @ có cách sử dụng thông dịch đặc biệt - thay vào đó là dữ liệu thô.
Tùy thuộc vào thiết bị đầu cuối HTTP của bạn, cấu hình máy chủ, bạn sẽ được tốt bằng cách sử dụng định dạng này:
curl -d @data.json http://api
Tôi không chắc chắn nếu có một định dạng đặc biệt ở đây, nếu không này có thể là những gì bạn muốn: http://serverfault.com/questions/313599/how-do-i-pipe-the-output-of-uptime-df-to-curl – thomasa88