2011-09-20 6 views
6

से सामग्री का उपयोग कर विशिष्ट चर के लिए यूनिक्स कर्ल पोस्ट करें मैंने इस उत्तर की खोज की है लेकिन यह कुछ भी नहीं मिला जो काम करता है या जो पूरी तरह से मेरी समस्या से मेल खाता है।फ़ाइल

यूनिक्स कर्ल का उपयोग करके, मुझे किसी सर्वर पर एक कुंजी/वैल जोड़ी पोस्ट करने की आवश्यकता है। कुंजी "मैक" होगी, और इस पोस्ट के लिए न्यूलाइन से अलग मैक पते की फाइल की सामग्री VALUE होगी।

मैं कोशिश की है:

curl -d @filename http://targetaddress.com, लेकिन जब लक्ष्य भेजे पोस्ट प्राप्त करता है, पोस्ट वर खाली है। (PHP प्राप्त हो रहा है)।

मैं इस साइट पर उल्लेख किया कर्ल के अन्य रूपों को देखा है, --url-encode जो इसे अपने सिस्टम पर कर्ल के लिए एक वैध विकल्प नहीं है कहते हैं का उपयोग कर ...

आप एक के रूप में एक फ़ाइल की सामग्री को कैसे पोस्ट करूँ यूनिक्स कर्ल का उपयोग कर एक पोस्ट में एक विशिष्ट कुंजी के लिए मूल्य?

+0

आप यूनिक्स कमांड लाइन का उपयोग कर रहे हैं, तो आप एक खोल के साथ-साथ प्रयोग कर रहे हैं। यह बैश या केश या टैग के लिए टैग जोड़कर उपयोगी उत्तर प्राप्त करने के आपके अवसरों में सुधार करेगा ??? सौभाग्य। – shellter

+0

धन्यवाद, जोड़ा गया। – Rimer

उत्तर

4

कर्ल मैन पेज-डी के अनुसार -डेटा-एसीआईआई जैसा ही है। डेटा को द्विआधारी उपयोग के रूप में पोस्ट करने के लिए - डेटा-बाइनरी और यूआरएल एन्कोडिंग उपयोग के साथ पोस्ट करने के लिए --डेटा-urlencode। तो जैसा कि यदि आप इसे यूआरएल इनकोडिंग उपयोग भेजना चाहते हैं अपनी फ़ाइल इनकोडिंग URL नहीं है:

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

यह एक पोस्ट अनुरोध में परिणाम होगा की तरह कुछ प्राप्त किया:

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

आप दायर करें की तरह कुछ में शामिल हैं:

:

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 

आप एक नाम जोड़ना चाहते हैं आप की तरह बहुखण्डीय रूप एन्कोडिंग कुछ का उपयोग कर सकते

या

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

ध्यान दें कि यदि आप पैरामीटर पर एक यूआरएल एन्कोडेड स्ट्रिंग भेजना चाहते हैं, तो मल्टीपार्ट फॉर्म एन्कोडिंग का उपयोग किए बिना, आपको 'curl --data-urlencode param @ file http: // example.com' का उपयोग करना चाहिए http: // superuser .com/प्रश्न/543,762/पोस्टिंग एक फ़ाइलें-सामग्री-साथ-कर्ल –