Why use Guzzle Instead of cURL in PHP ?

What is cURL?
cURL is a module in PHP with we can use libcurl. The libcurl is a library that is used in PHP to create connection and communicate with various kinds of different servers which may have different type of protocols. cURl provide us various pre-built functions like – curl_init(), curl_setopt(), curl_exec(), curl_close().

Limitations of cURL:

  • cURL does not support any recursive download logic.
  • cURL requires extra options to download.
  • Does not provide us with asynchronus and synchronus requests.

Example: These are the request made by using cURL.

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php>
  
// Get cURL resource
$curl = curl_init();
// Set some options 
curl_setopt($ch, CURLOPT_POST, 
  
curl_setopt($ch, CURLOPT_POST, false) ;
  
curl_setopt($ch, CURLOPT_RETURNTANSFER, false) ;
$result = curl_exec($ch);
curl_close($ch);
  
?>

chevron_right


Output:

What is Guzzle?
Guzzle is a Microframework (abstraction layer) that is a PHP HTTP client due to which the HTTP request is sent easily and it is trivial to integrate with web services. Guzzle can be used with any HTTP handler like cURL, socket, PHP’s stream wrapper. Guzzle by default uses cURL as Http handler.



Why use Guzzle Instead of cURL in PHP?

  • It provides easy user interface.
  • Guzzle can use various kinds of HTTP clients .
  • It allows us with the facility of asynchronus and synchronus requests.
  • Guzzle has built-in unit testing support which makes it easier to write unit tests for app and mock the http requests.

Example: These are the request made by using Guzzle.

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
use GuzzleHTTP\Client;
require '>>/vendor/autoload.php';
  
$client = new Client([
    'base_uri'=>'http://httpbin.org',
    'timeout' => 2.0
]);
  
$response = $client->request('GET', 'ip');
  
echo $response->getStatusCOde(), "<br>";
$body = $response->getBody();
echo $body->getContents(), "<br>";
  
echo "<pre>";
print_r(get_class_methods($body));
echo "</pre>";
echo "<pre>";
print_r(get_class_methods($response));
echo "</pre>";
?>

chevron_right


Output:




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.