1. Go to this page and download the library: Download n5s/http-cli library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
n5s / http-cli example snippets
use n5s\HttpCli\Client;
use n5s\HttpCli\RequestOptions;
$client = new Client('/path/to/your/app');
// Simple GET request
$response = $client->request('GET', 'https://example.com/api/users');
echo $response->getContent();
// POST with JSON
$response = $client->request('POST', '/api/users',
RequestOptions::create()
->json(['name' => 'John', 'email' => '[email protected]'])
->build()
);
// POST with form data
$response = $client->request('POST', '/login',
RequestOptions::create()
->formParams(['username' => 'admin', 'password' => 'secret'])
->build()
);
use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use n5s\HttpCli\Guzzle\CliHandler;
use n5s\HttpCli\Client;
$cliClient = new Client('/path/to/your/app');
$handler = new CliHandler($cliClient);
$client = new Client([
'handler' => HandlerStack::create($handler),
]);
// Use Guzzle as normal
$response = $client->get('/api/users');
$response = $client->post('/api/users', [
'json' => ['name' => 'John'],
]);
use n5s\HttpCli\Symfony\CliClient;
use n5s\HttpCli\Client;
$cliClient = new Client('/path/to/your/app');
$client = new CliClient($cliClient);
// Use Symfony HttpClient as normal
$response = $client->request('GET', '/api/users');
$data = $response->toArray();
use WpOrg\Requests\Requests;
use n5s\HttpCli\WordPress\Cli;
use n5s\HttpCli\Client;
$cliClient = new Client('/path/to/your/app');
Requests::set_transport([Cli::class]);
Cli::setClient($cliClient);
// Use WordPress Requests as normal
$response = Requests::get('/api/users');
use n5s\HttpCli\RequestOptions;
$options = RequestOptions::create()
// Body
->json(['key' => 'value']) // JSON payload
->formParams(['field' => 'value']) // Form data (application/x-www-form-urlencoded)
->body('raw content') // Raw body
->multipart([ // Multipart form data
['name' => 'file', 'contents' => 'data', 'filename' => 'test.txt'],
])
// Headers & Auth
->headers(['X-Custom' => 'value'])
->basicAuth('user', 'pass')
->bearerToken('token')
->cookies(['session' => 'abc123'])
// Other
->query(['page' => 1, 'limit' => 10])
->timeout(30.0)
->build();
$response = $client->request('POST', '/api/endpoint', $options);
$response = $client->request('GET', '/api/users');
$response->getStatusCode(); // 200
$response->getHeaders(); // ['Content-Type: application/json', ...]
$response->getContent(); // Response body as string
$response->getSession(); // Session data array
$response->getProcess(); // Symfony Process instance (for debugging)
$client = new Client(
documentRoot: '/path/to/your/app', // Required: your app's root directory
file: 'index.php', // Entry point (default: index.php)
globalsHandler: null, // GlobalsHandler to customize superglobals
phpExecutable: null, // PHP binary path (auto-detected)
);
use n5s\HttpCli\Client;
use n5s\HttpCli\InheritEnvGlobalsHandler;
$client = new Client(
documentRoot: '/path/to/your/app',
globalsHandler: new InheritEnvGlobalsHandler(),
);
use n5s\HttpCli\GlobalsHandler;
final class MyGlobalsHandler implements GlobalsHandler
{
public function handle(array &$globals): void
{
$globals['_SERVER']['APP_ENV'] = 'testing';
$globals['_ENV']['CUSTOM_VAR'] = 'value';
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.