Braintree HttpClient
BraintreeHttp is a generic HTTP Client., (*1)
In it's simplest form, an HttpClient
exposes an execute
method which takes an HTTP request, executes it against the domain described in an Environment, and returns an HTTP response., (*2)
Environment
An Environment
describes a domain that hosts a REST API, against which an HttpClient
will make requests. Environment
is a simple interface that wraps one method, baseUrl
., (*3)
$env = new Environment('https://example.com');
Requests
HTTP requests contain all the information needed to make an HTTP request against the REST API. Specifically, one request describes a path, a verb, any path/query/form parameters, headers, attached files for upload, and body data., (*4)
Responses
HTTP responses contain information returned by a server in response to a request as described above. They are simple objects which contain a status code, headers, and any data returned by the server., (*5)
$request = new HttpRequest("/path", "GET");
$request->body[] = "some data";
$response = $client->execute($req);
$statusCode = $response->statusCode;
$headers = $response->headers;
$data = $response->result;
Injectors
Injectors are blocks that can be used for executing arbitrary pre-flight logic, such as modifying a request or logging data. Injectors are attached to an HttpClient
using the addInjector
method., (*6)
The HttpClient
executes its injectors in a first-in, first-out order, before each request., (*7)
class LogInjector implements Injector
{
public function inject($httpRequest)
{
// Do some logging here
}
}
$logInjector = new LogInjector();
$client = new HttpClient($environment);
$client->addInjector($logInjector);
...
Error Handling
HttpClient#execute
may throw an Exception
if something went wrong during the course of execution. If the server returned a non-200 response, IOException will be thrown, that will contain a status code and headers you can use for debugging., (*8)
try
{
$client->execute($req);
}
catch (HttpException $e)
{
$statusCode = $e->response->statusCode;
$headers = $e->response->headers;
$body = $e->response->result;
}
License
BraintreeHttp-PHP is open source and available under the MIT license. See the LICENSE file for more information., (*9)
Contributing
Pull requests and issues are welcome. Please see CONTRIBUTING.md for more details., (*10)