दिलचस्प पोस्ट
क्रॉस सब डोमेन iframes और जावास्क्रिप्ट एसक्यूएल सर्वर में एक स्ट्रिंग से बचें, ताकि यह अभिव्यक्ति की तरह इस्तेमाल करने के लिए सुरक्षित हो बाल राज्यों में कोणीय यूआई राउटर नेस्टेड स्टेट का हल इस गोलांग कोड में क्या गलत है? वेबब्राउजर नियंत्रण में एक कुकी सेट करना समुच्चय और पीओडी और कैसे / क्यों वे विशेष हैं? इंटरनेट कनेक्ट / डिस्कनेक्ट का पता लगाने के लिए मुझे एक इवेंट की आवश्यकता है मैं वर्तमान लक्ष्य चींटी के मूल्य को कैसे प्राप्त करूं? खूबसूरत ढंग से (डेटा) में कई स्तंभों को सुशोभित करना डेटाफ़्रेम के बीच का अंतर (स्पार्क 2.0 अर्थात डाटासेट ) और स्पार्क में आरडीडी एंड्रॉइड में सूची दृश्य उप मद पाठ जोड़ना ब्रॉडकास्ट रीसिसर को अपंजीकृत करने के लिए कैसे करें स्तंभों में पाई चार्ट के लिए किंवदंती कैसे प्रदर्शित करें? कैसे एक MySQL workbench में सीएसवी फ़ाइल आयात करें? क्या आप <textarea> में बहुभाषी HTML5 प्लेसहोल्डर टेक्स्ट कर सकते हैं?

क्या मुझे URL- सांकेतिक शब्दों में बदलना डाक डेटा चाहिए?

मैं किसी बाहरी एपीआई को डाटा पोस्ट कर रहा हूं (पीएचपी का उपयोग कर यदि यह प्रासंगिक है)।

क्या मुझे पोस्ट वेरिएबल यूआरएल-सांकेतिक शब्दों में बदलना चाहिए जो मैं पास करता हूँ?

या मुझे केवल यूआरएल-सांकेतिक शब्दों में कहें डेटा प्राप्त करने की आवश्यकता है?

धन्यवाद!

अद्यतनः यह मेरी PHP है, अगर यह प्रासंगिक है:

$fields = array( 'mediaupload'=>$file_field, 'username'=>urlencode($_POST["username"]), 'password'=>urlencode($_POST["password"]), 'latitude'=>urlencode($_POST["latitude"]), 'longitude'=>urlencode($_POST["longitude"]), 'datetime'=>urlencode($_POST["datetime"]), 'category'=>urlencode($_POST["category"]), 'metacategory'=>urlencode($_POST["metacategory"]), 'caption'=>($_POST["description"]) ); $fields_string = http_build_query($fields); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_POST,count($fields)); curl_setopt($ch,CURLOPT_POSTFIELDS,$fields); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); 

Solutions Collecting From Web of "क्या मुझे URL- सांकेतिक शब्दों में बदलना डाक डेटा चाहिए?"

सामान्य जवाब

आपके प्रश्न का सामान्य उत्तर यह है कि यह निर्भर करता है। और आप निर्दिष्ट करते हैं कि आपके "सामग्री-प्रकार" HTTP हेडर में क्या है।

"Application / x-www-form-urlencoded" का मान का अर्थ है कि आपके डाक निकाय को जीईटी पैरामीटर स्ट्रिंग की तरह एन्कोडेड होना चाहिए। "मल्टीपार्ट / फॉर्म-डेटा" का मान है कि आप सामग्री सीमांकक का उपयोग करेंगे और कन्टैंट को कूटबन्धन नहीं करेंगे।

यदि आपको अधिक जानकारी चाहिए तो इस उत्तर में एक बहुत अधिक विस्तृत व्याख्या है ।


विशिष्ट उत्तर

आपके द्वारा उपयोग किए जा रहे PHP पुस्तकालयों के लिए एक उत्तर के लिए (कर्ल), आपको यहां दस्तावेज़ीकरण पढ़ना चाहिए।

यहां प्रासंगिक जानकारी दी गई है:

CURLOPT_POST

एक नियमित HTTP पोस्ट करने के लिए सही यह पोस्ट सामान्य ऐप्लिकेशन / एक्स-www-फ़ॉर्म-यूआरएलएन कोड वाला प्रकार है, जो सबसे सामान्यतः एचटीएमएल रूपों द्वारा उपयोग किया जाता है।

CURLOPT_POSTFIELDS

एक HTTP "पोस्ट" ऑपरेशन में पोस्ट करने के लिए पूर्ण डेटा। फ़ाइल पोस्ट करने के लिए, @ के साथ एक फ़ाइल नाम भरें और पूर्ण पथ का उपयोग करें। फ़ाइल प्रकार को फ़ाइल नाम को '' प्रकार = माइम टाइप '' प्रारूप में टाइप करके स्पष्ट रूप से निर्दिष्ट किया जा सकता है यह पैरामीटर या तो urlencoded स्ट्रिंग के रूप में पारित किया जा सकता है जैसे 'पैरा 1 = वैल 1 और पैरा 2 = वैल 2 और …' या मान के रूप में फ़ील्ड नाम के साथ एक सरणी के रूप में और मान डेटा के रूप में। यदि मान एक सरणी है, तो सामग्री-प्रकार हैडर को multipart / फ़ॉर्म-डेटा पर सेट किया जाएगा। PHP 5.2.0 के अनुसार, यदि फाइल इस विकल्प को @ उपसर्ग के साथ पास कर दी जाती है, तो मान एक सरणी होना चाहिए।

@ डौगू ने इस सवाल का स्पष्ट उत्तर दिया है, लेकिन मैं अभी भी डग के अंक की व्याख्या के लिए कुछ कोड जोड़ना चाहता हूं। (और ऊपर दिए गए कोड में सही त्रुटियां)

समाधान 1: सामग्री-प्रकार हैडर के साथ POST डेटा यूआरएल-एन्कोड करें: application / x-www-form-urlencoded

नोट: आपको $ _POST [] फ़ील्ड एक-एक करके urlencode की आवश्यकता नहीं है, http_build_query () फ़ंक्शन urlencoding नौकरी अच्छी तरह से कर सकता है

 $fields = array( 'mediaupload'=>$file_field, 'username'=>$_POST["username"], 'password'=>$_POST["password"], 'latitude'=>$_POST["latitude"], 'longitude'=>$_POST["longitude"], 'datetime'=>$_POST["datetime"], 'category'=>$_POST["category"], 'metacategory'=>$_POST["metacategory"], 'caption'=>$_POST["description"] ); $fields_string = http_build_query($fields); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_POST,1); curl_setopt($ch, CURLOPT_POSTFIELDS,$fields_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); 

समाधान 2: सरणी को सीधे यूआरएल-एन्कोडिंग के बिना पोस्ट डेटा के रूप में पास करें, जबकि कंटेंट-टाइप हैडर को बहुस्तृत / फॉर्म-डेटा पर सेट किया जाएगा।

 $fields = array( 'mediaupload'=>$file_field, 'username'=>$_POST["username"], 'password'=>$_POST["password"], 'latitude'=>$_POST["latitude"], 'longitude'=>$_POST["longitude"], 'datetime'=>$_POST["datetime"], 'category'=>$_POST["category"], 'metacategory'=>$_POST["metacategory"], 'caption'=>$_POST["description"] ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_POST,1); curl_setopt($ch, CURLOPT_POSTFIELDS,$fields); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); 

दोनों कोड स्निपेट काम करते हैं, लेकिन अलग HTTP हेडर और निकायों का उपयोग करते हुए

कर्ल आपके लिए डेटा एन्कोड करेंगे, बस अपने कच्चे फ़ील्ड डेटा को फ़ील्ड सरणी में छोड़ दें और इसे "जाओ" में बताएं