Вход Регистрация
Файл: includes/library/aws/Aws/Handler/GuzzleV6/GuzzleHandler.php
Строк: 69
<?php
namespace AwsHandlerGuzzleV6;

use 
AwsSdk;
use 
Exception;
use 
GuzzleHttpExceptionConnectException;
use 
GuzzleHttpExceptionRequestException;
use 
GuzzleHttpPromise;
use 
GuzzleHttpClient;
use 
GuzzleHttpClientInterface;
use 
PsrHttpMessageRequestInterface as Psr7Request;

/**
 * A request handler that sends PSR-7-compatible requests with Guzzle 6.
 */
class GuzzleHandler
{
    
/** @var ClientInterface */
    
private $client;

    
/**
     * @param ClientInterface $client
     */
    
public function __construct(ClientInterface $client null)
    {
        
$this->client $client ?: new Client();
    }

    
/**
     * @param Psr7Request $request
     * @param array       $options
     *
     * @return PromisePromise
     */
    
public function __invoke(Psr7Request $request, array $options = [])
    {
        
$request $request->withHeader(
            
'User-Agent',
            
'aws-sdk-php/' Sdk::VERSION ' ' GuzzleHttpdefault_user_agent()
        );

        return 
$this->client->sendAsync($request$options)->otherwise(
            static function (
Exception $e) {
                
$error = [
                    
'exception'        => $e,
                    
'connection_error' => $e instanceof ConnectException,
                    
'response'         => null,
                ];

                if (
$e instanceof RequestException && $e->getResponse()) {
                    
$error['response'] = $e->getResponse();
                }

                return new 
PromiseRejectedPromise($error);
            }
        );
    }
}
Онлайн: 2
Реклама