An easy-to-use HTTP client library for PHP. Support CURL, file, fsockopen, stream drivers.
- Simple and easy to use HTTP client
- Support drivers:
curl
swoole
fsockopen
stream
fopen
- Support all HTTP method. eg:
GET,POST,PATCH,PUT,HEAD,DELETE
- Support setting proxy, customizing headers, auth, content-type etc.
- Implement interface PSR 18
composer require phppkg/http-client
自动选择驱动类:
use PhpPkg\Http\Client\Client;
// use factory
$client = Client::factory([
'driver' => 'curl', // stream, fsock, fopen, file, co, co2
// ... 更多选项
'baseUrl' => 'http://my-site.com'
]);
直接使用指定的类:
$options = [
'baseUrl' => 'http://my-site.com'
// ...
];
$client = CurlClient::create($options);
$client = FileClient::create($options);
$client = FSockClient::create($options);
$client = FOpenClient::create($options);
$client = CoClient::create($options);
use PhpPkg\Http\Client\Client;
$client = Client::factory([]);
$client->get('/users/1');
$post = ['name' => 'john'];
$client->post('/users/1', $post);
// add ajax header
$client->byAjax()->post('/users/1', $post);
// add json content type
$client->json('/users/1', json_encode($post));
// or
$client->byJson()->post('/users/1', json_encode($post));
$statusCode = $client->getStatusCode();
$headers = $client->getResponseHeaders();
// get body data
$data = $client->getResponseBody();
$array = $client->getArrayData();
解析响应Body:
$data = $client->getDataObject();
$data->getInt('createTime', 0);
$user = new User();
$client->bindBodyTo($user);
vdump($user->name);
public function upload(string $url, string $field, string $filePath, string $mimeType = '')
public function download(string $url, string $saveAs)
public function downloadImage(string $imgUrl, string $saveDir, string $rename = '')
$client = CurlClient::create([
// ...
]);
$client->upload(...);
getJsonArray/getArrayData(): array
getJsonObject(): stdClass
getDataObject(): DataObject
bindBodyTo(object $obj): void