diff --git a/src/Network/HTTPClient.php b/src/Network/HTTPClient.php index d265411c2..053c65c0d 100644 --- a/src/Network/HTTPClient.php +++ b/src/Network/HTTPClient.php @@ -125,6 +125,10 @@ class HTTPClient implements IHTTPClient $conf[RequestOptions::BODY] = $opts[HTTPClientOptions::BODY]; } + if (!empty($opts[HTTPClientOptions::AUTH])) { + $conf[RequestOptions::AUTH] = $opts[HTTPClientOptions::AUTH]; + } + $conf[RequestOptions::ON_HEADERS] = function (ResponseInterface $response) use ($opts) { if (!empty($opts[HTTPClientOptions::CONTENT_LENGTH]) && (int)$response->getHeaderLine('Content-Length') > $opts[HTTPClientOptions::CONTENT_LENGTH]) { @@ -135,17 +139,7 @@ class HTTPClient implements IHTTPClient try { $this->logger->debug('http request config.', ['url' => $url, 'method' => $method, 'options' => $conf]); - switch ($method) { - case 'get': - case 'head': - case 'post': - case 'put': - case 'delete': - $response = $this->client->$method($url, $conf); - break; - default: - throw new TransferException('Invalid method'); - } + $response = $this->client->request($method, $url, $conf); return new GuzzleResponse($response, $url); } catch (TransferException $exception) { if ($exception instanceof RequestException && diff --git a/src/Network/HTTPClientOptions.php b/src/Network/HTTPClientOptions.php index f19936036..f9438fb47 100644 --- a/src/Network/HTTPClientOptions.php +++ b/src/Network/HTTPClientOptions.php @@ -37,4 +37,8 @@ class HTTPClientOptions * body: (mixed) Setting the body for sending data */ const BODY = RequestOptions::BODY; + /** + * auth: (array) Authentication settings for specific requests + */ + const AUTH = RequestOptions::AUTH; } diff --git a/src/Network/IHTTPClient.php b/src/Network/IHTTPClient.php index 2f8bab46f..871680553 100644 --- a/src/Network/IHTTPClient.php +++ b/src/Network/IHTTPClient.php @@ -97,6 +97,7 @@ interface IHTTPClient * 'cookiejar' => path to cookie jar file * 'header' => header array * 'content_length' => int maximum File content length + * 'auth' => array authentication settings * * @return IHTTPResult */