extensopartner / braintreehttp
0.3.0
2018-04-17 20:53 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-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。