2008-12-23 6 views
7

मैं लिनक्स शैल स्क्रिप्ट से कर्ल का उपयोग कर एक एसएमएस प्रदाता (Sybase 365) के HTTP गेटवे पर पोस्ट करने का प्रयास कर रहा हूं।मैं कर्ल कमांड लाइन उपकरण के साथ एलएफ पोस्ट कैसे करूं?

मैं निम्नलिखित डेटा पास करने ([] और वामो पात्रों ध्यान दें)

[MSISDN] 
List=+12345678 
[MESSAGE] 
Text=Hello 
[END] 

अगर मैं एफ पैरामीटर का उपयोग कर एक फाइल जमा करना, curl वामो उदा को हटा इस में

curl -F @myfile "http://www.sybase.com/..." 

परिणाम सर्वर पर (जो अस्वीकार कर दिया है)

[MSISDN]List=+12345678[MESSAGE]Text=Hello[END] 

क्या मैं इस से बचने के लिए क्या कर सकते हैं या मैं एक वैकल्पिक उपकरण की आवश्यकता है है?

मैं परीक्षण के लिए अपना डेटा युक्त फ़ाइल का उपयोग कर रहा हूं लेकिन मैं इसे अभ्यास में और स्क्रिप्ट से सीधे पोस्ट से बचाना चाहता हूं।

उत्तर

3

मैं इस काम के -d

request=`printf "[MSISDN]\nList=$number\n[MESSAGE]\nText=$message\n[END]\n"` 
response=`curl -s -u $username:$password -d "$request" http://www.sybase.com/...` 

मजे की बात है का उपयोग कर, अगर मैं -d @myfile (जहां myFile शामिल वामो पाठ विभाजित) का उपयोग मिल गया है, यह काम नहीं करता।

मैंने सफलता के बिना - डेटा-बाइनरी भी कोशिश की। डेटा में

3

शायद एक मूर्ख विचार, लेकिन मुझे नहीं लगता कि वास्तव में केवल एलएफ की बजाय सीआरएलएफ की आवश्यकता है?

वैकल्पिक रूप से, क्या आपने -F के बजाय --data-binary विकल्प का उपयोग करने का प्रयास किया है?

+0

CRLF या वामो [कर्ल 7.12.1 पर परीक्षण] - यह कोई फर्क नहीं करता है - लेकिन जब तक आप और एथेना मुझे --data-द्विआधारी से अवगत कराया , मैं या तो नहीं भेज सका। धन्यवाद। –

11

-d(ata-ascii) के बजाय --data-binary का उपयोग करने का प्रयास करें।

मैनुअल से:

--data-बाइनरी (HTTP) --data-ascii के रूप में एक समान तरीके से यह पोस्ट डेटा करता है, हालांकि जब इस विकल्प का उपयोग तैनात डेटा के पूरे संदर्भ है के रूप में रखा गया है।

यदि आप --डेटा-एएससीआई विकल्प की स्ट्रिप-न्यूलाइन सुविधाओं के बिना बाइनरी फ़ाइल पोस्ट करना चाहते हैं, तो यह आपके लिए है। यदि यह विकल्प कई बार उपयोग किया जाता है, तो पहले वाले लोग डेटा जोड़ देंगे।

ईटीए: ओह, मुझे प्रश्न को और अधिक बारीकी से पढ़ना चाहिए। आप -F, नहीं-डी का उपयोग कर रहे हैं। लेकिन --data-binary अभी भी एक शॉट के लायक हो सकता है।

+0

यह निष्कर्ष है कि मैं अभी भी साथ आऊंगा :) –

+0

आह! मैं इस पृष्ठ से काम कर रहा हूं http://curl.haxx.se/docs/manual.html जिसे मैंने अभी महसूस किया है केवल उपयोग है - इसमें उल्लेख नहीं है - डेटा-बाइनरी। मैं वास्तव में -F का उपयोग करने से बचना चाहता हूं क्योंकि मैं फाइल सिस्टम का उपयोग करने से बचना चाहता हूं। –

1
curl "url" --data-binary @myfile 

पदों नई लाइनों

संबंधित मुद्दे