How To

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

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!

Click to rate this post!
[Total: 9 Average: 5]
Dhiren Vasoya

Dhiren Vasoya is a Director and Co-founder at MageComp, Passionate 🎖️ Certified Magento Developer👨‍💻. He has more than 9 years of experience in Magento Development and completed 850+ projects to solve the most important E-commerce challenges. He is fond❤️ of coding and if he is not busy developing then you can find him at the cricket ground, hitting boundaries.🏏

Recent Posts

How to Integrate ChatGPT with Laravel Application?

In this guide, we'll explore how to integrate ChatGPT, an AI-powered chatbot, with a Laravel…

14 hours ago

What are Net Sales? How to Calculate Your Net Sales?

In the world of business, understanding financial metrics is crucial for making informed decisions and…

3 days ago

Magento 2 Extensions Digest April 2024 (New Release & Updates)

Welcome to the MageComp Monthly Digest, where we bring you the latest updates, releases, and…

3 days ago

The ABCs of Geofencing: Definition, Features and Uses

In this era, businesses are always on the lookout for ways to engage with their…

4 days ago

How to Delete Product Variant in a Shopify Remix App using GraphQL Mutations?

Managing a Shopify store efficiently involves keeping your product catalog organized. This includes removing outdated…

5 days ago

6 Innovative Tools Revolutionizing E-Commerce Operations

E-commerce has transformed the way consumers shop for products and services and interact with businesses.…

7 days ago