qbo-tech / paypalhttp
v1.0.1
2024-06-25 23:19 UTC
Requires
- ext-curl: *
Requires (Dev)
- phpunit/phpunit: ^5.7
- wiremock-php/wiremock-php: 1.43.2
This package is not auto-updated.
Last update: 2024-09-18 23:11:30 UTC
README
PayPalHttp 是一个通用的 HTTP 客户端。
在其最简单的形式中,一个 HttpClient
提供了一个 execute
方法,该方法接受一个 HTTP 请求,针对在 Environment 中描述的域名执行它,并返回一个 HTTP 响应。
环境
Environment
描述了一个托管 REST API 的域名,针对该域名 HttpClient
将发起请求。 Environment
是一个简单的接口,它封装了一个方法,即 baseUrl
。
$env = new Environment('https://example.com');
请求
HTTP 请求包含执行 HTTP 请求所需的所有信息。具体来说,一个请求描述了一个路径、一个动词、任何路径/查询/表单参数、头信息、上传的附件以及正文数据。
响应
HTTP 响应包含服务器根据上述请求返回的信息。它们是简单的对象,包含状态码、头信息和服务器返回的任何数据。
$request = new HttpRequest("/path", "GET"); $request->body[] = "some data"; $response = $client->execute($req); $statusCode = $response->statusCode; $headers = $response->headers; $data = $response->result;
注入器
注入器是用于执行任意预执行逻辑的代码块,例如修改请求或记录数据。通过 addInjector
方法将注入器附加到 HttpClient
上。
HttpClient
在每个请求之前以先入先出的顺序执行其注入器。
class LogInjector implements Injector { public function inject($httpRequest) { // Do some logging here } } $logInjector = new LogInjector(); $client = new HttpClient($environment); $client->addInjector($logInjector); ...
错误处理
HttpClient#execute
如果在执行过程中出现错误,可能会抛出 Exception
。如果服务器返回了非 200 的响应,将抛出 IOException,该异常将包含您可用于调试的状态码和头信息。
try { $client->execute($req); } catch (HttpException $e) { $statusCode = $e->response->statusCode; $headers = $e->response->headers; $body = $e->response->result; }
许可证
PayPalHttp-PHP 是开源的,可在 MIT 许可证下使用。有关更多信息,请参阅 LICENSE 文件。
贡献
欢迎拉取请求和问题。有关更多详细信息,请参阅 CONTRIBUTING.md。