codememory/screw

Component for sending Http RequestAuthor

v2.0 2021-02-01 14:57 UTC

This package is auto-updated.

Last update: 2024-11-29 06:22:39 UTC


README

HTTP Screw - это интерфейс пакета Guzzle, который упрощает создание запросов используя ООП

License Code Size Packagist

Установка

composer require codememory/http-screw

Документация

Request Методы

  • baseUrl(): HttpRequest Добавить URL в клиент. И тогда в setUrl() можно просто передать ссылку

    • string $url (default: null)

  • setUrl(): HttpRequest Добавить URL на который будет сделан запрос

    • string $url (default: null)

  • addPort(): HttpRequest Добавить ПОРТ к URL

    • integer $port (default: null)

  • setMethod(): HttpRequest Метод запроса [ GET|POST|PUT|DELETE|UPDATE ]

    • string $method (default: GET)

  • clientOptions(): HttpRequest Следующее указаные опции добавить в клиент. Которые будут по умолчанию

    • boolean $status (default: false)

  • option(): HttpRequest Добавить опцию к запросу

    • string $option (default: null)

    • callable $callback (default: None): $option

      • object $option (default: $option)

  • processResponseCode(): HttpRequest Обработать HTTP-код

    • callable $callback (default: None)

      • Response $response (default: $response)

    • integer $code (default: 200)

  • refuser(): HttpRequest Обработать ошибку запроса. Это может быть ошибка connect и прочее

    • callable $callback (default: None)

      • RequestException $e (default: $e)

  • addBody(): HttpRequest Отправить Body

    • string $body (default: None)

  • addJson(): HttpRequest Загрузка данных в кодировке JSON в качестве тела запроса. Заголовок Content-Type application/json будет добавлен, если в сообщении уже нет заголовка Content-Type.

    • mixed $data (default: None)

  • saveBody(): HttpRequest Добавить Путь, где будет сохранен body ответ

  • send(): HttpRequest Метод отправляет запрос на указанный URL

  • response(): GuzzleResponse Возрощает Response пакета Guzzle

Опции и их компоненты

Redirect

> HttpRequest::O_REDIRECT
  • redirect() Разришение Перенаправлений

    • boolean $performRedirects (default: false)

  • numberRedirects() Кол-во Перенаправлений

    • integer $redirects (default: 5)

  • strictRedirect() Строгие Перенаправления

    • boolean $strictly (default: false)

  • addRefererOnRedirect() Разрешить добавление заголовка referer при обноружении перенаправления

    • boolean $allowDispatch (default: true)

  • redirectHandler() Обработчик при обнаружении перенаправления

    • object|callable $allowDispatch (default: null)

  • allowProtocols() Добавить разрешенные протоколы

    • string ...$args (default: [http, https])

Authorization

> HttpRequest::O_AUTH
  • username() Имя пользователя

    • string|integer $username (default: null)

  • password() Пароль пользователя

    • string|integer $password (default: null)

  • type() Тип аутификации [basic, digest, ntlm]

    • string $type (default: null)

  • disable() Отключить аутификацию

    • None (default: true(On))

  • enable() Включить аутификацию

    • None (default: true(On))

Timeout(сек)

> HttpRequest::O_TIMEOUT
  • connectionTime() Время подключения к серверу

    • integer|float $time (default: 0)

  • requestTime() Время запроса

    • integer|float $time (default: 0)

  • readTime() Время использования при чтении потокового тела

    • integer|float $time (default: default_socket_timeout of php.ini)

SSL Cert

> HttpRequest::O_SSL
  • certificate() Путь к файлу, содержащему сертификат в формате PEM

    • string $pathCertificate (default: None)

    • string|null $password (default: null)

  • key() Путь к файлу, содержащему закрытый ключ SSL в формате PEM

    • string $pathCertificate (default: None)

    • string|null $password (default: null)

  • verify() Включить проверку SSL или Установить путь к собственому сертификату на диске

    • boolean|string $pathOrStatus (default: true)

Proxy

> HttpRequest::O_PROXY
  • setProxy() Добавить прокси с определенным протоколом

    • string $proxy (default: null) - URL-адрес прокси

    • string|null $protocol (default: None) - Протокол прокси

  • username() Имя пользователя

    • string $username (default: None) - Пример с именем пользователя [http://username:password@127.0.0.1:80]

  • password() Пароль пользователя

    • string $password (default: None)

  • setUser() Объединение методов username() и password()

    • string $username (default: None)

    • string $password (default: None)

    • boolean $forAllAddresses (default: false) - Добавить ко всем следующим URL-адресам имя пользователя и пароль

  • preventProxy() Добавить имена хостов, которые не следует проксировать

    • string ...$args (default: None)

Params

HttpRequest::O_PARAMS

  • form() Передать POST данные, если метод запроса POST

    • array $data (default: None)

  • query() Передать GET данные, если метод запроса GET

    • array $data (default: None)

  • withFiles(): ParamsOption Отправить файлы. Не работает вместе с методом form()

    • string $inputName (default: None)

    • mixed NOT null $contents (default: None) - Данные для использования в элементе формы.

    • ?string $filename (default: Null)

    • ?array $headers (default: [])

Headers

HttpRequest::O_HEADERS

  • decodeContent(): HeadersOption Укажите, будут ли Content-Encoding ответы (gzip, deflate и т. Д.) Автоматически декодироваться.
    • string|boolean $decode (default: true)

  • header() Добавить заголовок
    • string $name (default: None)

    • mixed $value (default: None)

  • onHeaders() Вызываемый объект, который вызывается, когда HTTP-заголовки ответа получены, но тело еще не начало загружаться.
    • callable $callback (default: None)

      • Response $response (default: Response)

  • expect() Управляет поведением заголовка «Expect: 100-Continue».
    • integer|boolean $rule (default: 1048576)

Http

HttpRequest::O_HTTP

  • setVersion() Установить версию протокола
    • integer|float $version (default: 1.1)

  • stream() Установить потоковою передачу ответа, а не для загрузки сразу
    • boolean $status (default: false)

  • idnConversion() Поддержка интернационализированных доменных имен (IDN) (включена по умолчанию, если intl расширение доступно).
    • integer|boolean $support (default: true or false)

  • httpExceptions() Выдача исключений по HTTP-code
    • boolean $status (default: true)

  • ipVersion() Установить версию IP
    • string $version (default: None)

  • stats() Позволяет получить доступ к статистике передачи запроса и доступ к деталям передачи нижнего уровня обработчика, связанного с вашим клиентом.
    • callable $callback (default: None)

      • TransferStats $stats (default: TransferStats)

  • sync() Сообщить обработчикам HTTP, что вы собираетесь ожидать ответ. Это может быть полезно для оптимизации
    • boolean $status (default: None)

Progress

HttpRequest::O_PROGRESS

  • progress() Определяет функцию, вызываемую при выполнении передачи.
    • callable $callback (default: None)

      • integer $downloadTotal (default: 0) - общее количество байтов, ожидаемых к загрузке, ноль, если неизвестно

      • integer $downloadedBytes (default: 0) - количество байтов, загруженных на данный момент

      • integer $uploadTotal (default: 0) - общее количество байтов, которые должны быть загружены

      • integer $uploadedBytes (default: 0) - количество байтов, загруженных на данный момент

Response Методы

  • responseType() Преоброзовать ответ Body в ТИП:

    • integer $type (default: String(4))
      Response::RESPONSE_JSON
      Response::RESPONSE_ARRAY
      Response::RESPONSE_OBJECT
      Response::RESPONSE_STRING

  • getBody() Получить Body ответа

  • getHttpCode() Получить HTTP-код

  • getResponseGuzzle(): GuzzleResponse Вернуть обьект класса GuzzleResponse

  • __call() Другие методы из обьекта GuzzleResponse Подробнее

Отправка запроса

 use Codememory\Screw\HttpRequest;

 $httpRequest = new HttpRequest();
 
 $response = $httpRequest
        ->setUrl('http://example.com/') // Url запроса
        ->setMethod('GET') // Метод запроса
        ->send();

Запрос с опциями

 $httpRequest
    ->setUrl('http://example.com/')
    ->setMethod('GET')
    ->option(HttpRequest::O_REDIRECT, function(RedirectOption $redirect):  RedirectOption {
        $redirect
            ->redirect(true);
        
        return $redirect;
    })
    ->send();

Пример использования несколько опций и их компоненты:

 $httpRequest
    ->setUrl('http://example.com/')
    ->setMethod('GET')
    ->option(HttpRequest::O_REDIRECT, function(RedirectOption $redirect): RedirectOption {
        $redirect
            ->redirect(true)
            ->allowProtocols('http'); 
            
        return $redirect;
    })
    ->option(HttpRequest::TIMEOUT, function(TimeoutOption $timeout): TimeoutOption {
        $timeout
            ->delay(4)
            ->requestTime(5);
         
        return $timeout;
    })
    ->send();