Magento 2: How to use Default Curl Class For API Call

How to use Default Curl Class For API Call in M2

Hello Magento Friends,

Hope all are doing well. Today I am going to justify Magento 2: How to use Default Curl Class For API Call. In case you missed checking out our previous blog, Magento 2: Add extra “Proceed to Checkout” Button on top of grid on shopping cart page.

Introduction:

Sometimes, developers have a requirement to call third-party API and for that client URL (cURL) request is used. Many developers use the PHP curl function directly and it works perfectly fine. But Magento has already created a curl class for future enhancement. To maintain Magento standards, we must use it. Going against the Magento coding standards will show some warnings.

For e.g, I want to create one function in helper data that is responsible for sending API messages using cURL. Let’s look at the steps to implement it.

Steps to use Default Curl Class For API Call in Magento 2:

Step 1: Create Data.php file in the below path

Vendor\Extension\Helper\Data.php

And add the below code

<?php
namespace Vendor\Extension\Helper;

use Magento\Framework\App\Helper\AbstractHelper;
use Magento\Framework\HTTP\Client\Curl;

/**
 * Class  Data
 * Vendor\Extension\Helper
 */
class Data extends AbstractHelper
{
    /**
     * Data constructor.
     * @param Curl $curl
     */
    public function __construct(
        Curl $curl
    ) {
        $this->curl = $curl;
    }

    /**
     * @return string
     * @throws LocalizedException
     */
    public function defualtCurl()
    {
        try {
            if ($this->isEnable()) {
                $postData = [
                    'first_param' => 'first_value'
                ];

                $this->curl->setOption(CURLOPT_SSL_VERIFYPEER, false);
                $this->curl->setOption(CURLOPT_SSL_VERIFYHOST, 2);
		// we can add all option which is we used for default PHP curl
                $this->curl->post($this->getApiUrl(), $postData);
                // Response Text
                $response = $this->curl->getBody();
                // Response Header
                $responseHeader = $this->curl->getHeaders();
                // Response cookies
                $responseCookies = $this->curl->getCookies();
                return $response;
            }
        } catch (Exception $e) {
            $return = ["status"=>false, "message"=> $e->getMessage()];
        }
    }
}

Conclusion:

Accordingly, one can successfully use the default curl class for API call in Magento 2. In case you face any trouble with the implementation of the above code, mention it in the comment part below. I will be happy to help you out. See you with another solution, till then stay in touch!

Happy Coding!

Previous Article

MageComp's Christmas Sale 2020! Great Deals for Your Magento Store

Next Article

Magento 2: Append Block to Specific Container Dynamically

Write a Comment

Leave a Comment

Your email address will not be published. Required fields are marked *

Get Connect With Us

Subscribe to our email newsletter to get the latest posts delivered right to your email.
Pure inspiration, zero spam ✨