alofoxx/paypalhttp

v1.0.2 2024-03-17 01:01 UTC

This package is auto-updated.

Last update: 2024-09-17 02:18:00 UTC


README

PayPalHttp 是一个通用的 HTTP 客户端。

在最简单的形式中,一个 HttpClient 暴露了一个 execute 方法,该方法接受一个 HTTP 请求,对在 Environment 中描述的域名执行请求,并返回一个 HTTP 响应

环境

Environment 描述了一个托管 REST API 的域名,HttpClient 将在此域名上发出请求。 Environment 是一个简单接口,它包装了一个方法,即 baseUrl

$env = new Environment('https://example.com');

请求

HTTP 请求包含了对 REST API 发出 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