আপনার জানা দরকার যে আপনি যে REST এপিআই কল করছেন সেগুলি GETবা POST, বা উভয় পদ্ধতিই নয়। নীচের কোডটি এমন কিছু যা আমার পক্ষে কাজ করে, আমি আমার নিজের ওয়েব সার্ভিস এপিআই কল করছি, তাই আমি ইতিমধ্যে জানি যে এপিআই কী নেয় এবং এটি কী ফিরে আসবে। এটি উভয় GETএবং POSTপদ্ধতিই সমর্থন করে, তাই সংবেদনশীল তথ্যগুলি কম intoুকে যায় এবং URL (GET)ব্যবহারকারীর নাম এবং পাসওয়ার্ডের মতো তথ্য POSTভেরিয়েবল হিসাবে জমা দেওয়া হয় । এছাড়াও, সবকিছু HTTPSসংযোগের ওপরে চলে যায় ।
এপিআই কোডের অভ্যন্তরে আমি একটি অ্যারে এনকোড করে আমি জসন ফর্ম্যাটে ফিরে যেতে চাই, তারপরে কেবল পিএইচপি কমান্ডটি ব্যবহার করি echo $my_json_variable ক্লায়েন্টের কাছে সেই জসন স্ট্রিংটি অ্যাভায়লাব করতে করুন।
সুতরাং আপনি দেখতে পাচ্ছেন, আমার এপিআই জসন ডেটা ফেরত দেয়, তবে আপনাকে এপিআই থেকে প্রতিক্রিয়াটি কোন ফর্ম্যাটটিতে রয়েছে তা জানতে (বা এটি জানতে ফিরে আসা ডেটার দিকে নজর দেওয়া) দরকার।
এইভাবে আমি ক্লায়েন্টের পক্ষ থেকে এপিআইয়ের সাথে সংযুক্ত:
$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;
}
বিটিডাব্লু, আমি file_get_contents()এখানকার কিছু ব্যবহারকারীর পরামর্শ অনুসারে পদ্ধতিটিও ব্যবহার করার চেষ্টা করেছি , তবে তা আমার পক্ষে ভাল কাজ করে না। আমি curlপদ্ধতিটি দ্রুত এবং আরও নির্ভরযোগ্য হওয়ার জন্য খুঁজে পেয়েছি ।