Skip to content

Commit fdb3a4b

Browse files
committed
Fix handling response codes
1 parent 06bfcba commit fdb3a4b

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

src/MetaLoader.php

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -108,27 +108,26 @@ public function loadSource(array $source): void
108108

109109
$httpUtils = new Utils\HTTP();
110110
$data = null;
111+
111112
// GET!
112-
try {
113-
/** @var array $response We know this because we set the third parameter to `true` */
114-
$response = $httpUtils->fetch($source['src'], $context, true);
115-
list($data, $responseHeaders) = $response;
116-
} catch (Exception $e) {
117-
Logger::warning('metarefresh: ' . $e->getMessage());
118-
}
113+
$client = $this->httpUtils->createHttpClient($context);
114+
$response = $client->request('GET', $source['src'], $context);
115+
$statusCode = $response->getStatusCode();
116+
$responseHeaders = $response->getHeaders();
117+
$data = $response->getContent();
119118

120119
// We have response headers, so the request succeeded
121-
if (!isset($responseHeaders)) {
120+
if ($responseHeaders === []) {
122121
// No response headers, this means the request failed in some way, so re-use old data
123122
Logger::info('No response from ' . $source['src'] . ' - attempting to re-use cached metadata');
124123
$this->addCachedMetadata($source);
125124
return;
126-
} elseif (preg_match('@^HTTP/(2\.0|1\.[01])\s304\s@', $responseHeaders[0])) {
125+
} elseif ($statusCode === 304) {
127126
// 304 response
128127
Logger::debug('Received HTTP 304 (Not Modified) - attempting to re-use cached metadata');
129128
$this->addCachedMetadata($source);
130129
return;
131-
} elseif (!preg_match('@^HTTP/(2\.0|1\.[01])\s200\s@', $responseHeaders[0])) {
130+
} elseif ($statusCode !== 200) {
132131
// Other error
133132
Logger::info('Error from ' . $source['src'] . ' - attempting to re-use cached metadata');
134133
$this->addCachedMetadata($source);

0 commit comments

Comments
 (0)