2011-09-20 36 views
6

Tôi đã tìm kiếm câu trả lời này nhưng không tìm thấy bất kỳ thứ gì hoạt động hoặc hoàn toàn phù hợp với vấn đề của tôi.Unix cURL POST tới biến cụ thể bằng cách sử dụng nội dung từ một tệp

Sử dụng Unix cURL, tôi cần POST một cặp khóa/val vào máy chủ. Khóa sẽ là "MAC" và nội dung của tệp của các địa chỉ MAC được phân cách bằng dòng mới sẽ là VALUE cho POST này.

Tôi đã thử:

curl -d @filename http://targetaddress.com, nhưng khi đối tác nhận được POST đến, các var POST trống. (PHP đang nhận).

Tôi đã nhìn thấy các hình thức khác của curl được đề cập trên trang web này, sử dụng --url-encode mà nói nó không phải là một lựa chọn hợp lệ cho curl trên hệ thống của tôi ...

Làm thế nào để bạn POST nội dung của một tập tin như một giá trị cho một khóa cụ thể trong POST bằng UNIX cURL?

+0

Nếu bạn đang sử dụng unix dòng lệnh, sau đó bạn đang sử dụng một lớp vỏ là tốt. Nó sẽ cải thiện cơ hội của bạn để có được câu trả lời hữu ích bằng cách thêm thẻ cho bash hoặc ksh hoặc ??? Chúc may mắn. – shellter

+0

cảm ơn, đã thêm điều đó. – Rimer

Trả lời

4

Theo trang curl man -d giống như --data-ascii. Để đăng dữ liệu dưới dạng sử dụng nhị phân --data-binary và để đăng với sử dụng mã hóa url --data-urlencode. Vì vậy, khi tập tin của bạn không được URL mã hóa nếu bạn muốn gửi URL được mã hóa sử dụng:

curl --data-urlencode @file http://example.com 

Nếu quý vị nộp chứa một cái gì đó như:

00:0f:1f:64:7d:ff 
00:0f:1f:64:7d:ff 
00:0f:1f:64:7d:ff 

này sẽ dẫn đến một yêu cầu POST nhận một cái gì đó như:

POST/HTTP/1.1 
User-Agent: curl/7.19.5 (i486-pc-linux-gnu) libcurl/7.19.5 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.15 
Host: example.com 
Accept: */* 
Content-Length: 90 
Content-Type: application/x-www-form-urlencoded 

00%3A0f%3A1f%3A64%3A7d%3Aff%0A00%3A0f%3A1f%3A64%3A7d%3Aff%0A00%3A0f%3A1f%3A64%3A7d%3Aff%0A 

Nếu bạn muốn thêm một tên mà bạn có thể sử dụng nhiều phần dữ liệu một cái gì đó dưới dạng mã hóa như:

curl -F [email protected] http://example.com 

hoặc

curl -F MACS=<file http://example.com 
+0

Lưu ý rằng nếu bạn muốn gửi một chuỗi mã hóa URL tại một tham số, KHÔNG sử dụng mã hóa biểu mẫu nhiều phần, bạn nên sử dụng 'curl --data-urlencode param @ file http: // example.com' Xem thêm http: // superuser .com/questions/543762/post-a-files-contents-with-curl –

Các vấn đề liên quan