Vamos a hacer peticiones a servicios http o APIs con PHP sin CURL, este último muchas veces está bloqueado por el hosting y no es posible hacer peticiones a enlaces externos.
Vamos a utilizar la librería Requests for PHP en nuestro entorno de desarrollo local, así que es importante tener el manejador de dependencias: composer.
Instalación de Requests
Para instalar la librería es necesario ejecutar el siguiente comando:
composer require "rmccue/requests"
Nuestro composer.json debería verse como la siguiente imagen

Así debería lucir el árbol de dependencias y archivos:

Peticiones HTTP Get con PHP
Y listo a partir de ahora podemos solicitar datos a servicios y APIs externos, yo tuve esta necesidad pues algunos servicios de los que consumo no permiten solicitudes desde el browser.
Peticiones HTTP Post con PHP
Si queremos enviar datos, debemos colocarlos dentro de un array. Es importante conocer el tipo de envío que debemos hacer en post, ya sea para un multipart/form-data o un application/json.
Este dato debemos revisarlo con el proveedor del servicio, si es necesario enviar llaves de autenticación u otro dato en las cabeceras, podemos agregar este dato en otro array.
Peticiones HTTP PUT, PATCH y DELETE con PHP
El resto de peticiones se pueden hacer con los métodos:
Requests::
put
($url, $headers, $data, $options); Requests::
patch
($url, $headers, $data, $options); Requests::
delete
($url, $headers, $options);
Status Code y Headers de Peticiones HTTP con PHP
Para obtener el codigo de estado se obtiene de la variable de respuesta:
$response->status_code
En el caso de la cabecera es necesario agregar el nombre de la cabecera requerida. NOTA: no distingue entre mayusculas y minusculas
$response->headers['Date'];
Comentarios Finales
Esta por demás decirlo, pero siempre que importen la librería al proyecto es necesario subirla a su host para que funcione, así que la carpeta vendor ahora debería estar incluida en el servidor.
Las cabeceras de autenticación se envían en el array de $headers, pero se debe consultar con el proveedor del servicio cuales se deben enviar.
Y listo ya no es necesario preocuparse por que el servidor tenga soporte para CURL, que tengan felices proyectos y que todo vaya sin bugs, un Saludo afectuoso y nos vemos en el siguiente tutorial.