X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FUtil%2FParseUrl.php;h=24be55cab931ced253b360a51070f93852dcb0d0;hb=17d49422b4f7b3d1ed06859f996876a85028d87b;hp=c1fcff28e6b2ef380eb3d8ec425a620c1435b4a3;hpb=322b7c856ca9ba53bd9c7da50dd5c1e3c9197d56;p=friendica.git diff --git a/src/Util/ParseUrl.php b/src/Util/ParseUrl.php index c1fcff28e6..24be55cab9 100644 --- a/src/Util/ParseUrl.php +++ b/src/Util/ParseUrl.php @@ -60,13 +60,19 @@ class ParseUrl public static function getContentType(string $url) { $curlResult = DI::httpClient()->head($url); + + // Workaround for systems that can't handle a HEAD request + if (!$curlResult->isSuccess() && ($curlResult->getReturnCode() == 405)) { + $curlResult = DI::httpClient()->get($url, [HttpClientOptions::CONTENT_LENGTH => 1000000]); + } + if (!$curlResult->isSuccess()) { return []; } $contenttype = $curlResult->getHeader('Content-Type')[0] ?? ''; if (empty($contenttype)) { - return []; + return ['application', 'octet-stream']; } return explode('/', current(explode(';', $contenttype))); @@ -216,6 +222,7 @@ class ParseUrl $curlResult = DI::httpClient()->get($url, [HttpClientOptions::CONTENT_LENGTH => 1000000]); if (!$curlResult->isSuccess() || empty($curlResult->getBody())) { + Logger::info('Empty body or error when fetching', ['url' => $url, 'success' => $curlResult->isSuccess(), 'code' => $curlResult->getReturnCode()]); return $siteinfo; }