9 namespace Fossology\Lib\Util;
12 use GuzzleHttp\Client;
13 use GuzzleHttp\Exception\GuzzleException;
14 use GuzzleHttp\Exception\RequestException;
25 public static function getGuzzleClient(array $SysConf,
string $baseUri,
string $token =
"")
28 if (array_key_exists(
'http_proxy', $SysConf[
'FOSSOLOGY']) &&
29 !empty($SysConf[
'FOSSOLOGY'][
'http_proxy'])) {
30 $proxy[
'http'] = $SysConf[
'FOSSOLOGY'][
'http_proxy'];
32 if (array_key_exists(
'https_proxy', $SysConf[
'FOSSOLOGY']) &&
33 !empty($SysConf[
'FOSSOLOGY'][
'https_proxy'])) {
34 $proxy[
'https'] = $SysConf[
'FOSSOLOGY'][
'https_proxy'];
36 if (array_key_exists(
'no_proxy', $SysConf[
'FOSSOLOGY']) &&
37 !empty($SysConf[
'FOSSOLOGY'][
'no_proxy'])) {
38 $proxy[
'no'] = explode(
',', $SysConf[
'FOSSOLOGY'][
'no_proxy']);
41 $version = $SysConf[
'BUILD'][
'VERSION'];
42 $headers = [
'User-Agent' =>
"fossology/$version"];
44 $headers[
'Authorization'] =
'Bearer ' . $token;
48 'http_errors' =>
false,
50 'base_uri' => $baseUri,
51 'headers' => $headers,
65 $response = $guzzleClient->get($getHealth);
66 if ($response->getStatusCode() === 200) {
69 }
catch (RequestException|GuzzleException $e) {
91 $statusCode = $response->getStatusCode();
92 switch ($statusCode) {
94 $data = json_decode($response->getBody()->getContents());
96 if (json_last_error() !== JSON_ERROR_NONE) {
106 throw new HttpClientException(
"Unauthorized access. Please check your credentials or token.");
108 throw new HttpClientException(
"Access forbidden. You may not have the necessary permissions.");
Exception when Guzzle client response is not as expected.
static processHttpResponse($response)
static getGuzzleClient(array $SysConf, string $baseUri, string $token="")
static checkLicenseDBHealth(string $getHealth, $guzzleClient)