PHPackages                             hlmqz/http - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. hlmqz/http

ActiveLibrary[HTTP &amp; Networking](/categories/http)

hlmqz/http
==========

Package to handle HTTP Requests

v1.1.0(1y ago)04Apache-2.0PHPPHP &gt;=8.4.0

Since Apr 7Pushed 1y ago1 watchersCompare

[ Source](https://github.com/hlmqz/php-http)[ Packagist](https://packagist.org/packages/hlmqz/http)[ RSS](/packages/hlmqz-http/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (1)Versions (3)Used By (0)

 [ ![](https://github.com/hlmqz/php-http/raw/master/php-84-http-requests.png) ](https://hlmqz.github.io/map-grid-density-demo/)
===============================================================================================================================

[](#)

PHP-HTTP Requests
=================

[](#php-http-requests)

Este Paquete es una implementación sencilla y controlada de realizar Peticiones HTTP desde PHP sin dependencias innecesarias.

### Requerimientos

[](#requerimientos)

- PHP 8.4 o Superior

Implementación
--------------

[](#implementación)

### Inicialización

[](#inicialización)

La clase es dinámica en su creación para facilitar el proceso, el constructor puede recibir 4 parámetros opcionales, se recomienda pasarlos de manera nombrada, si el orden no es lo que busca, los parámetros y el orden es:

- `string $url`: la url a la cual se realiza la petrción.
- `string $method`: es el método a implementaar la petción.
- `object|array $data`: Son los datos enviar en la petición, si los requiere.
- `array $headers`: son las cabeceras para agregar a la petción, de ser necesario.

```
use Hlmqz\Http\Requester;

// se puede especificando solo la URL, el método es por defecto GET
$requester = new Requester('https://httpbin.org/get');

// se puede especificando solo la URL y el método
$requester = new Requester('https://httpbin.org/get', 'GET');

// con pámetros nombrados
$requester = new Requester(
	url: 'https://httpbin.org/get',
	method: 'GET',
	data: [],
	headers: [],
);

// se puede sin especicar en la construcción, pero si asignando varaibles url y method
$requester = new Requester();
$requester->url = 'https://httpbin.org/get';
$requester->method = 'GET';
$requester->data = [ ... ];
$requester->headers = [ ... ];
```

las caracteristicas de configuración que no son obligatorias pero están disponibles son:

```
// string id: tiene un id UUID compatible para identificar el objeto Requester.
$requester->id;

// array methods: no se puede escribir, muestra los métodos disponibles.
$requester->methods;

// string method: establece el método a usar, por defecto 'GET'.
$requester->method = 'GET';

// array types: no se puede escribir, muestra los tipos de contenido, un array.
$requester->types;

// string type: establece el tipo de contendio a enviar, los indices de types
// son los válidos, por defecto 'json'.
$requester->type = 'json';

// int timeLimit: establece el tiempo límite para TIMEOUT de CURL, por defecto 30.
$requester->timeLimit = 30;

// string url: es la URL a la cual se le realizará la petición, por defecto es vacio.
$requester->url = '';

// array last: tiene los datos preparados de la petición anterior.
$requester->last;

// Responded responded: tiene un objecto Responded, los datos recibidos de la última petición.
$requester->responded;
```

### Envío de la petición

[](#envío-de-la-petición)

Para realizar la petición, solo es llamar al método `send` que tiene un parámetro no obligatorio `toArray`que definie si el contenido será devuelto como Array, por defecto es `false` para retornar el contenido de respuesta en un Objeto `StdClass`.

```
use Hlmqz\Http\Requester;

$requester = new Requester('https://httpbin.org/get');

$responded = $requester->send(); // parámetro toArray por defecto false.

// ejemplo detallado con parámetro nombrado.
$responded = $requester->send(toArray: true); // si quiere que el contenido de la respuesta sea un array.
```

### Datos de respuesta de la petición

[](#datos-de-respuesta-de-la-petición)

La respuesta en la variable `$responded` será la clase `Hlmqz\Http\Responded` la cuál tiene las siguientes propiedades:

```
// float requestDuration: Es el tiempo en segundos qué demoró la petición.
$responded->requestDuration;

// int httpCode: Es el código de respuesta HTTP de la petición,
$responded->httpCode;

// string contentType: es el tipo de contenido dado en la respuesta.
$responded->contentType;

// string url: Es la URL usada en la petición.
$responded->url;

// string method: Es el método usado en la petición.
$responded->method;

// array headers: Son las cabeceras recibidd en la petición.
$responded->headers;

// mixed content: el contenido de la respuesta, texto si no es application/json
// json u objeto, según el parámetro toArray en el método send.

$responded->content;

// mixed error: es el mensaje de error de CURL en caso de falla al realizar la petición
// sería bueno validar si tiene valor para continuar.
$responded->error;

// mixed rawData: es la data enviada en la petición, de manera como se esptableció antes de
// procesarse al tipo de contenido
$responded->rawData;

// array curlInfo: es el array con el contenido dado por curl_info, contiene
// detalles de la peticó¡ión realizada.
$responded->curlInfo;
```

Envío multiple o masivo
-----------------------

[](#envío-multiple-o-masivo)

Puede realizar también multiples peticiones de manera masiva, esto es útil cuando queire realizarlas de manera asincrónica, se enviarán al tiempo cuantas pueda realizar el sistema sin bloquearlo, realizando de manera eficiente en tiempo.

Para realizarlo, en un instancia de `Requester` (vacía, pues ella misma no se ejecutará) use el método `addMultiple` puede agregar de a una instancias de `Requester` que posteriormente con el método `sendMultiple` puede realizar la ejecución de todos lo `Requester`, como respuesta tendrá un array con todas las insancias de `Responded` correspondientes.

Este array de `Responded` está indexado con los id's de cada una de las `Requester` ingresados.

ejemplo de realizar 10 peticiones simultaneamente:

```
use Hlmqz\Http\Requester;

$multiRquester = new Requester();

foreach (range(0, 9) as $n){
	$multiRequester->addMultiple(new Requester('https://httpbin.org/uuid'));
}

$allResponded = $multiRequester->sendMultiple(toArray: false);

foreach ($allResponded as $responded){
	print_r($responded->content);
}
```

Una implementación sencilla, fácil de usar y sin dependencias innecesarias.

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance46

Moderate activity, may be stable

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

2

Last Release

404d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b418d3fb5e61c6f0c0184763a9e83696d5d7ae8c979667124bd68c9975523b53?d=identicon)[hlmqz](/maintainers/hlmqz)

---

Top Contributors

[![hlmqz](https://avatars.githubusercontent.com/u/7216267?v=4)](https://github.com/hlmqz "hlmqz (9 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/hlmqz-http/health.svg)

```
[![Health](https://phpackages.com/badges/hlmqz-http/health.svg)](https://phpackages.com/packages/hlmqz-http)
```

###  Alternatives

[friendsofsymfony/rest-bundle

This Bundle provides various tools to rapidly develop RESTful API's with Symfony

2.8k73.3M319](/packages/friendsofsymfony-rest-bundle)[php-http/discovery

Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations

1.3k309.5M1.2k](/packages/php-http-discovery)[nyholm/psr7

A fast PHP7 implementation of PSR-7

1.3k235.4M2.4k](/packages/nyholm-psr7)[pusher/pusher-php-server

Library for interacting with the Pusher REST API

1.5k94.8M293](/packages/pusher-pusher-php-server)[spatie/crawler

Crawl all internal links found on a website

2.8k16.3M52](/packages/spatie-crawler)[react/http

Event-driven, streaming HTTP client and server implementation for ReactPHP

78126.4M414](/packages/react-http)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
