extensopartner/braintreehttp

0.3.0 2018-04-17 20:53 UTC

This package is not auto-updated.

Last update: 2024-09-23 07:50:57 UTC


README

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

在最简单的形式中,一个HttpClient暴露了一个execute方法,该方法接收一个HTTP请求,对该请求描述的环境执行操作,并返回一个HTTP响应

环境

环境描述了一个托管REST API的域名,HttpClient将针对该域名发起请求。环境是一个简单接口,它包装了一个方法,即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;
}

许可证

BraintreeHttp-PHP是开源软件,受MIT许可证的约束。有关更多信息,请参阅LICENSE文件。

贡献

欢迎提交拉取请求和问题。有关更多详细信息,请参阅CONTRIBUTING.md