webguosai / hyperf-http-client
hyperf http客户端
dev-main
2025-07-26 12:04 UTC
Requires
- php: >=8.1
- ext-curl: *
- ext-iconv: *
- ext-json: *
- ext-libxml: *
- ext-openssl: *
- ext-simplexml: *
- hyperf/di: ^3.1
- webguosai/http-client-v2: dev-main
Requires (Dev)
- symfony/var-dumper: ^3.4
This package is auto-updated.
Last update: 2025-07-26 12:04:20 UTC
README
运行环境
- php >= 8.1
- composer
- hyperf >= 3.1
安装
composer require webguosai/hyperf-http-client -vvv
配置
发布配置
php bin/hyperf.php vendor:publish webguosai/hyperf-http-client
配置文件
return [ // 超时 (单位秒,-1表示不超时) 'timeout' => 3.0, // 代理ip // http:127.0.0.1:9527 或 http://127.0.0.1:9527 // https:https://127.0.0.1:9527 // socks5:socks5://127.0.0.1:9527 'proxy' => '', // 重定向 (-1表示无限制,默认不重定向) 'redirect' => 0, // 保存cookie的文件路径 'cookieJarFile' => '', ];
使用
发送请求
- 写法一
use Webguosai\HyperfHttpClient\Facade\HttpClient; // facade 写法 $response = HttpClient::request($url, $method, $data, $headers); $response = HttpClient::get($url, $query, $headers); $response = HttpClient::post($url, $data, $headers); $response = HttpClient::put($url, $data, $headers); $response = HttpClient::patch($url, $data, $headers); $response = HttpClient::delete($url, $data, $headers); $response = HttpClient::head($url, $data, $headers); $response = HttpClient::options($url, $data, $headers);
- 写法二
use function \Webguosai\HyperfHttpClient\http; $response = http()->request($url, $method, $data, $headers); $response = http()->get($url, $query, $headers); $response = http()->post($url, $data, $headers); $response = http()->put($url, $data, $headers); $response = http()->patch($url, $data, $headers); $response = http()->delete($url, $data, $headers); $response = http()->head($url, $data, $headers); $response = http()->options($url, $data, $headers);
- 写法三
/** @var $http \Webguosai\HttpClient\Contract\HttpClientInterface * */ $http = di(\Webguosai\HttpClient\Contract\HttpClientInterface::class); $response = $http->request($url, $method, $query, $headers); $response = $http->get($url, $query, $headers); $response = $http->post($url, $data, $headers); $response = $http->put($url, $data, $headers); $response = $http->patch($url, $data, $headers); $response = $http->delete($url, $data, $headers); $response = $http->head($url, $data, $headers); $response = $http->options($url, $data, $headers);
实操
/** @var $throw \Webguosai\HttpClient\Exception\RequestException **/ [$status, $throw] = $response->ok(); if ($status) { var_dump($response->getBody()); var_dump($response->json()); } else { var_dump($throw->getMessage()); // 错误内容 var_dump($throw->getRequestArgs()); // 请求前的传参 var_dump($throw->getContext()); // 上下文 信息 var_dump($throw->getErrorType()); // 错误类型 var_dump($throw->getHttpStatusCode()); // http 状态码 var_dump($throw->getCurlErrorCode()); // curl 错误码 }
文档
https://github.com/webguosai/http-client-v2
License
MIT