मुझे PHP में कर्ल कमांड के नीचे लागू करने की आवश्यकता है। कर्ल-एक्स पोस्ट "http://XXXXXXXXX/api/service" -F "परिदृश्य=http://XXXXXXXXX/api/service/scenarios/3728940075"

इसके लिए मैंने कोड के नीचे लिखा है लेकिन इसके 400 खराब अनुरोध फेंक रहे हैं। कृपया मेरी मदद करें

$postdata = array("scenario" => "http://XXXXXXXXX/api/service/scenarios/3728940075" );


echo "  --- cURL postdata #:" . $postdata;
$curl = curl_init();
curl_setopt($curl, CURLOPT_VERBOSE, false);
curl_setopt($curl,CURLOPT_HEADER, false); 
curl_setopt($curl, CURLOPT_URL, "http://XXXXXXXXX/api/service");
//curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); 
//curl_setopt($curl,CURLOPT_POST, count($postdata));
curl_setopt($curl,CURLOPT_POSTFIELDS, $postdata);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
//curl_setopt($curl, CURLOPT_FAILONERROR, true); 

$response = curl_exec($curl);
echo " --- cURL response #:" . $response;
$err = curl_error($curl);
echo " --- cURL Error #:" . $err;
curl_close($curl);
if ($err) {
    echo "<h2> Error found in setting up trigger. Please contact the Start Administrator</h2>";
    echo "cURL Error #:" . $err;
} else {
    echo " ----   setupTrigger -------".$response;
    return $response;
}

कृपया इस मुद्दे को हल करने में मेरी मदद करें

php
-1
Raghu K 3 मार्च 2020, 14:30
इस उत्तर को आजमाएं: stackoverflow.com/a/13596901/11025032
 – 
dobson
3 मार्च 2020, 14:35
मैंने कोशिश की .. लेकिन फिर भी वही त्रुटि
 – 
Raghu K
3 मार्च 2020, 14:39
क्या यह संभव है कि आप जिस एपीआई का उपयोग कर रहे हैं उसके लिए JSON या कुछ और की आवश्यकता है?
 – 
dobson
3 मार्च 2020, 14:41
इसके लिए JSON प्रारूप की आवश्यकता नहीं है .. -F "परिदृश्य=XXXXXXXXX/api/service/scenarios/3728940075< /a>" इस यूआरएल को मुझे "XXXXXXXXX/api/service" पर पोस्ट करना है।
 – 
Raghu K
3 मार्च 2020, 14:43
मुझे लगता है कि लोग SO मानकों से बाहर प्रश्न पूछने के लिए नए खाते बनाते हैं क्या समस्या है?
 – 
mw509
3 मार्च 2020, 15:46

2 जवाब

मैंने आपके PHP कर्ल कोड और कर्ल-एफ कमांड लाइन द्वारा भेजे गए सटीक अनुरोध शीर्षलेखों और पोस्ट डेटा की जांच की है। फर्क सिर्फ इतना है कि कर्ल-एफ कमांड लाइन यूजर-एजेंट हेडर जोड़ती है, और डिफ़ॉल्ट रूप से PHP कर्ल में कोई यूजर-एजेंट शामिल नहीं होता है।

यह संभव है कि रिमोट सर्वर यूए स्ट्रिंग की जांच करता है और खाली होने पर 400 खराब अनुरोध लौटाता है।

कुछ ऐसा जोड़ने का प्रयास करें:

curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0');

अपने PHP कर्ल कोड के लिए।

0
coredo 3 मार्च 2020, 15:42

अब हल हो गया है। मैंने नीचे इस्तेमाल किया है। समर्थन के लिए सभी का धन्यवाद।

`

$postdata = array('scenario' => "http://XXXXXXX/api/service",);
$data = http_build_query($postdata);    
$curl = curl_init();
curl_setopt($curl, CURLOPT_VERBOSE, false);
curl_setopt($curl,CURLOPT_HEADER, false); 
curl_setopt($curl, CURLOPT_URL, "http://XXXXXXXXXXXXXX/api/service");
curl_setopt($curl,CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
    echo "cURL Error #:" . $err;
} else {
    return $response;
}

`

0
Raghu K 3 मार्च 2020, 20:01