¿ Qué es cURL ?
cURL es un módulo en PHP con el que podemos usar libcurl. libcurl es una biblioteca que se usa en PHP para crear conexiones y comunicarse con varios tipos de servidores diferentes que pueden tener diferentes tipos de protocolos. cURl nos proporciona varias funciones preconstruidas como: curl_init(), curl_setopt(), curl_exec(), curl_close().
Limitaciones de cURL:
- cURL no admite ninguna lógica de descarga recursiva.
- cURL requiere opciones adicionales para descargar.
- No nos proporciona requests asíncronas y síncronas.
Ejemplo: Estas son las requests realizadas mediante cURL.
PHP
<?php> // Get cURL resource $curl = curl_init(); // Set some options curl_setopt($ch, CURLOPT_POST, "https://jsonplaceholder.typicode.com/users"); curl_setopt($ch, CURLOPT_POST, false) ; curl_setopt($ch, CURLOPT_RETURNTANSFER, false) ; $result = curl_exec($ch); curl_close($ch); ?>
Producción:
¿Qué es Guzzle?
Guzzle es un Microframework (capa de abstracción) que es un cliente PHP HTTP debido a que la solicitud HTTP se envía fácilmente y es trivial integrarse con los servicios web. Guzzle se puede usar con cualquier controlador HTTP como cURL, socket, envoltura de flujo de PHP. Guzzle por defecto usa cURL como manejador Http.
¿Por qué usar Guzzle en lugar de cURL en PHP?
- Proporciona una interfaz de usuario sencilla.
- Guzzle puede usar varios tipos de clientes HTTP.
- Nos permite con la facilidad de peticiones asíncronas y síncronas.
- Guzzle tiene soporte integrado para pruebas unitarias que facilita escribir pruebas unitarias para la aplicación y simular las requests http.
Ejemplo: Estas son las requests realizadas mediante Guzzle.
PHP
<?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>"; ?>
Producción:
Publicación traducida automáticamente
Artículo escrito por rajatrathi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA