आप जानना चाहते हैं कि बाकी एपीआई आप का समर्थन करता है बुला रहे हैं की आवश्यकता होगी GET
या POST
, या दोनों तरीकों। नीचे दिया गया कोड कुछ ऐसा है जो मेरे लिए काम करता है, मैं अपनी खुद की वेब सेवा एपीआई कॉल कर रहा हूं, इसलिए मुझे पहले से ही पता है कि एपीआई क्या लेता है और यह क्या लौटेगा। यह दोनों GET
और POST
विधियों का समर्थन करता है , इसलिए कम संवेदनशील जानकारी अंदर जाती है URL (GET)
, और उपयोगकर्ता नाम और पासवर्ड जैसी जानकारी POST
चर के रूप में प्रस्तुत की जाती है। इसके अलावा, सब कुछ HTTPS
कनेक्शन पर चला जाता है ।
एपीआई कोड के अंदर, मैं एक एरेस को एनकोड करता हूं, जिसे मैं json फॉर्मेट में वापस करना चाहता हूं, फिर echo $my_json_variable
क्लाइंट को उस json स्ट्रिंग का लाभ लेने के लिए PHP कमांड का उपयोग करें।
तो जैसा कि आप देख सकते हैं, मेरा एपीआई जोंस डेटा लौटाता है, लेकिन आपको यह जानने की जरूरत है (या यह पता लगाने के लिए लौटाए गए डेटा को देखें) कि एपीआई की प्रतिक्रिया किस प्रारूप में है।
यह है कि मैं क्लाइंट की तरफ से एपीआई से कैसे जुड़ूं:
$processed = FALSE;
$ERROR_MESSAGE = '';
// ************* Call API:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.myapi.com/api.php?format=json&action=subscribe&email=" . $email_to_subscribe);
curl_setopt($ch, CURLOPT_POST, 1);// set post data to true
curl_setopt($ch, CURLOPT_POSTFIELDS,"username=myname&password=mypass"); // post data
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($ch);
curl_close ($ch);
// returned json string will look like this: {"code":1,"data":"OK"}
// "code" may contain an error code and "data" may contain error string instead of "OK"
$obj = json_decode($json);
if ($obj->{'code'} == '1')
{
$processed = TRUE;
}else{
$ERROR_MESSAGE = $obj->{'data'};
}
...
if (!$processed && $ERROR_MESSAGE != '') {
echo $ERROR_MESSAGE;
}
BTW, मैंने भी file_get_contents()
विधि का उपयोग करने की कोशिश की क्योंकि यहाँ कुछ उपयोगकर्ताओं ने सुझाव दिया था, लेकिन यह मेरे लिए अच्छा काम नहीं करेगा। मुझे पता चला कि यह curl
विधि तेज़ और अधिक विश्वसनीय होगी।