giantvlad / braintreehttp
PHP Http客户端。braintree/braintreehttp的分支
0.4.2
2023-06-04 08:58 UTC
Requires
- php: >=7.3
- ext-curl: *
Requires (Dev)
- phpunit/phpunit: ^9.6.8
- wiremock-php/wiremock-php: ^2.35.1
This package is auto-updated.
Last update: 2024-09-04 11:36:37 UTC
README
BraintreeHttp是一个通用的HTTP客户端。
在其最简单的形式中,一个HttpClient暴露了一个execute方法,该方法接收一个HTTP请求,对其执行环境中描述的域名,并返回一个HTTP响应。
环境
环境描述了一个托管REST API的域名,针对该域名,HttpClient将发起请求。环境是一个简单的接口,它包装了一个方法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; }
许可协议
BraintreeHttp-PHP是开源软件,可在MIT许可协议下使用。有关更多信息,请参阅LICENSE文件。
贡献
欢迎提交拉取请求和问题。有关详细信息,请参阅CONTRIBUTING.md。