मुझे निम्नलिखित JSON कोड पोस्ट करने की आवश्यकता है, लेकिन किसी कारण से यह काम नहीं कर रहा है। नीचे मेरे पास कोड है।PHP कर्ल, पोस्ट JSON
$fieldString = "395609399";
//the curl request processor
function processCurlJsonrequest($URL, $fieldString) { //Initiate cURL request and send back the result
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADERS, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_USERAGENT, $this->_agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_COOKIEFILE, $this->_cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $this->_cookie_file_path);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
if ($fieldCount) { // in case of post fields present then pass it on
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode("{categoryId: $fieldString}"));
curl_setopt($ch, CURLOPT_POST, 1);
}
$resulta = curl_exec($ch);
if (curl_errno($ch)) {
print curl_error($ch);
} else {
curl_close($ch);
}
return $resulta;
}
यहाँ समारोह जो cURL अनुरोध कहता है:
function get_cat($categoryId, $URL) {
$fields = array(
"categoryId" => $categoryId
);
$fields_string = $fields;
return $this->processCurlJsonrequest($URL, $fields_string);
}
json_encode एक PHP सरणी दें, एक स्ट्रिंग नहीं जो पहले से ही जेएस ऑब्जेक्ट के रूप में है। – JAL
मैंने curl_setopt ($ ch, CURLOPT_POSTFIELDS, सरणी (json_encode (सरणी ( "श्रेणी आईडी" => "5016"))) की कोशिश की है; और json_encode (सरणी ( "श्रेणी आईडी" => "5016")); और – Michael
काम नहीं कर रहा है यह बहुत ही परेशान है कि आपने स्पष्ट रूप से समस्या हल की है (जैसा कि आपकी टिप्पणी द्वारा इंगित किया गया है) लेकिन यह इंगित करने के लिए पोस्ट को अपडेट नहीं किया गया कि समाधान क्या था। कुछ कारणों से – shanusmagnus