2013-10-18 6 views
16

से लाने के दौरान एक वैध कर्ल हैंडल संसाधन नहीं है, मैं अपने एपीआई के माध्यम से freshdesk.com से आने वाले सभी टिकटों को प्रबंधित करने के लिए अपना स्वयं का सिस्टम बना रहा हूं। मैं freshdesk.com से डेटा लाने के लिए कर्ल अनुरोध कर रहा हूं। ठीक इसके काम करता है टिकर से संबंधित के डेटा प्राप्त लेकिन जब मैं कर्ल अनुरोध के माध्यम से सभी उपयोगकर्ताओं के लिए विनती करता हूँ के साथ तो इसकी मुझे त्रुटि दे:curl_error() प्राप्त करना: 2 सभी उपयोगकर्ताओं को freshdesk api

चेतावनी: curl_errno(): 2 सी में एक वैध cURL संभाल संसाधन नहीं है: \ WAMP \ www \ test.php लाइन पर 28

मेरे कोड है कि तरह है:

$ch = curl_init(); 
$cOption = array(
    CURLOPT_URL   => 'http://velocity.freshdesk.com/contacts.xml', 
    CURLOPT_HEADER   => 0, 
    CURLOPT_USERPWD  => "$email:$password", 
    CURLOPT_POST   => false, 
    CURLOPT_HTTPHEADER  => array('Content-Type: application/xml'), 
    CURLOPT_HTTPAUTH  => CURLAUTH_BASIC, 
    CURLOPT_FAILONERROR => 1, 
    CURLOPT_SSL_VERIFYHOST => 2, 
    CURLOPT_SSLVERSION  => 2 
); 
@curl_setopt_array($ch, $cOption); 
curl_close($ch); 
echo curl_errno($ch); //line 28 
echo curl_error($ch); //line 29 
echo $ch_result; 

आउटपुट है:
चेतावनी: curl_errno(): 2 एक वैध cURL संभाल संसाधन नहीं है सी में: \ wamp \ www \ test.php lin पर ई 28.
चेतावनी: curl_errno(): 2 सी में एक वैध cURL संभाल संसाधन नहीं है: \ WAMP \ www \ test.php लाइन पर 29
1 // गूंज $ ch_result के उत्पादन

कोड के साथ क्या गलत है और यह चेतावनियां क्यों होती हैं, यह जानने में मेरी सहायता करें।

उत्तर

50

$ch बंद करने के बाद आप curl_errno और curl_error का उपयोग करते हैं। यह सही नहीं है।

त्रुटि के बारे में जानकारी प्राप्त करने के बाद आपको अपने $ch को बंद करने की आवश्यकता है।

echo curl_errno($ch); 
echo curl_error($ch); 
curl_close($ch); 

इसके अलावा आपने $ch_result पर कुछ भी सेट नहीं किया है। यदि आप उम्मीद करते हैं कि इसमें आपके अनुरोध का परिणाम शामिल है तो आप गलत हैं। इसे ठीक करने के लिए आपको $ ch बंद करने के बाद साथ $ch_result = curl_exec($ch);

9
echo curl_errno($ch); 
echo curl_error($ch); 

बुलाया जाना चाहिए विकल्प CURLOPT_RETURNTRANSFER जोड़ सकते हैं और परिणाम लाने के लिए curl_close($ch);

1

आप curl_errno और curl_error का उपयोग करने से पहले की जरूरत है। यह सही नहीं है।

आपको त्रुटि के बारे में जानकारी प्राप्त करने के बाद अपने $ ch को बंद करने की आवश्यकता है।

यह सच है कि मुझे इसका उत्तर मिल गया है।

 $data = curl_exec($ch); 
     if (!curl_errno($ch)) { 
     .... 
     } 
     curl_close($ch); 
संबंधित मुद्दे