diff --git a/src/Content/OEmbed.php b/src/Content/OEmbed.php index 4c787747e6..f250889520 100644 --- a/src/Content/OEmbed.php +++ b/src/Content/OEmbed.php @@ -18,6 +18,7 @@ use Friendica\Database\Database; use Friendica\Database\DBA; use Friendica\DI; use Friendica\Network\HTTPClient\Client\HttpClientAccept; +use Friendica\Network\HTTPClient\Client\HttpClientOptions; use Friendica\Network\HTTPClient\Client\HttpClientRequest; use Friendica\Util\DateTimeFormat; use Friendica\Util\Network; @@ -87,7 +88,7 @@ class OEmbed // but their OEmbed endpoint is only accessible by HTTPS ¯\_(ツ)_/¯ $href = str_replace(['http://www.youtube.com/', 'http://player.vimeo.com/'], ['https://www.youtube.com/', 'https://player.vimeo.com/'], $href); - $result = DI::httpClient()->fetchFull($href . '&maxwidth=' . $a->getThemeInfoValue('videowidth'), HttpClientAccept::DEFAULT, 0, '', HttpClientRequest::SITEINFO); + $result = DI::httpClient()->get($href . '&maxwidth=' . $a->getThemeInfoValue('videowidth'), HttpClientAccept::DEFAULT, [HttpClientOptions::REQUEST => HttpClientRequest::SITEINFO]); if ($result->isSuccess()) { $json_string = $result->getBodyString(); break; diff --git a/src/Core/Installer.php b/src/Core/Installer.php index d5c1f3c4ff..ae812451b4 100644 --- a/src/Core/Installer.php +++ b/src/Core/Installer.php @@ -557,11 +557,11 @@ class Installer $help = ""; $error_msg = ""; if (function_exists('curl_init')) { - $fetchResult = DI::httpClient()->fetchFull($baseurl . "/install/testrewrite"); + $fetchResult = DI::httpClient()->get($baseurl . "/install/testrewrite"); $url = Strings::normaliseLink($baseurl . "/install/testrewrite"); if ($fetchResult->getReturnCode() != 204) { - $fetchResult = DI::httpClient()->fetchFull($url); + $fetchResult = DI::httpClient()->get($url); } if ($fetchResult->getReturnCode() != 204) { diff --git a/src/Module/OStatus/PubSubHubBub.php b/src/Module/OStatus/PubSubHubBub.php index d152393e17..d010891139 100644 --- a/src/Module/OStatus/PubSubHubBub.php +++ b/src/Module/OStatus/PubSubHubBub.php @@ -15,6 +15,7 @@ use Friendica\Model\PushSubscriber; use Friendica\Module\Response; use Friendica\Network\HTTPClient\Capability\ICanSendHttpRequests; use Friendica\Network\HTTPClient\Client\HttpClientAccept; +use Friendica\Network\HTTPClient\Client\HttpClientOptions; use Friendica\Network\HTTPClient\Client\HttpClientRequest; use Friendica\Network\HTTPException; use Friendica\Util\Profiler; @@ -141,7 +142,7 @@ class PubSubHubBub extends \Friendica\BaseModule $hub_callback = rtrim($hub_callback, ' ?&#'); $separator = parse_url($hub_callback, PHP_URL_QUERY) === null ? '?' : '&'; - $fetchResult = $this->httpClient->fetchFull($hub_callback . $separator . $params, HttpClientAccept::DEFAULT, 0, '', HttpClientRequest::PUBSUB); + $fetchResult = $this->httpClient->get($hub_callback . $separator . $params, HttpClientAccept::DEFAULT, [HttpClientOptions::REQUEST => HttpClientRequest::PUBSUB]); $body = $fetchResult->getBodyString(); $returnCode = $fetchResult->getReturnCode(); diff --git a/src/Network/HTTPClient/Capability/ICanSendHttpRequests.php b/src/Network/HTTPClient/Capability/ICanSendHttpRequests.php index ccfb789684..8e1f5bbe57 100644 --- a/src/Network/HTTPClient/Capability/ICanSendHttpRequests.php +++ b/src/Network/HTTPClient/Capability/ICanSendHttpRequests.php @@ -31,22 +31,6 @@ interface ICanSendHttpRequests */ public function fetch(string $url, string $accept_content = HttpClientAccept::DEFAULT, int $timeout = 0, string $cookiejar = '', string $request = ''): string; - /** - * Fetches the whole response of an URL. - * - * Inner workings and parameters are the same as @ref fetchUrl but returns an array with - * all the information collected during the fetch. - * - * @param string $url URL to fetch - * @param string $accept_content supply Accept: header with 'accept_content' as the value - * @param int $timeout Timeout in seconds, default system config value or 60 seconds - * @param string $cookiejar Path to cookie jar file - * @param string $request Request Type - * - * @return ICanHandleHttpResponses With all relevant information, 'body' contains the actual fetched content. - */ - public function fetchFull(string $url, string $accept_content = HttpClientAccept::DEFAULT, int $timeout = 0, string $cookiejar = '', string $request = ''): ICanHandleHttpResponses; - /** * Send a GET to a URL. * diff --git a/src/Network/HTTPClient/Client/HttpClient.php b/src/Network/HTTPClient/Client/HttpClient.php index 761e3c2282..113facc04b 100644 --- a/src/Network/HTTPClient/Client/HttpClient.php +++ b/src/Network/HTTPClient/Client/HttpClient.php @@ -271,25 +271,21 @@ class HttpClient implements ICanSendHttpRequests */ public function fetch(string $url, string $accept_content = HttpClientAccept::DEFAULT, int $timeout = 0, string $cookiejar = '', string $request = ''): string { - $ret = $this->fetchFull($url, $accept_content, $timeout, $cookiejar, $request); - - return $ret->getBodyString(); - } - - /** - * {@inheritDoc} - */ - public function fetchFull(string $url, string $accept_content = HttpClientAccept::DEFAULT, int $timeout = 0, string $cookiejar = '', string $request = ''): ICanHandleHttpResponses - { - return $this->get( - $url, - $accept_content, - [ - HttpClientOptions::TIMEOUT => $timeout, - HttpClientOptions::COOKIEJAR => $cookiejar, - HttpClientOptions::REQUEST => $request, - ] - ); + try { + $ret = $this->get( + $url, + $accept_content, + [ + HttpClientOptions::TIMEOUT => $timeout, + HttpClientOptions::COOKIEJAR => $cookiejar, + HttpClientOptions::REQUEST => $request, + ] + ); + return $ret->getBodyString(); + } catch (\Throwable $th) { + $this->logger->notice('Got exception', ['code' => $th->getCode(), 'message' => $th->getMessage()]); + return ''; + } } private function getUserAgent(string $type = ''): string diff --git a/tests/src/Core/InstallerTest.php b/tests/src/Core/InstallerTest.php index 66cd8d1488..cd478a7204 100644 --- a/tests/src/Core/InstallerTest.php +++ b/tests/src/Core/InstallerTest.php @@ -353,11 +353,11 @@ class InstallerTest extends MockedTest // Mocking the CURL Request $networkMock = Mockery::mock(ICanSendHttpRequests::class); $networkMock - ->shouldReceive('fetchFull') + ->shouldReceive('get') ->with('https://test/install/testrewrite') ->andReturn($IHTTPResult); $networkMock - ->shouldReceive('fetchFull') + ->shouldReceive('get') ->with('http://test/install/testrewrite') ->andReturn($IHTTPResult); @@ -400,11 +400,11 @@ class InstallerTest extends MockedTest // Mocking the CURL Request $networkMock = Mockery::mock(ICanSendHttpRequests::class); $networkMock - ->shouldReceive('fetchFull') + ->shouldReceive('get') ->with('https://test/install/testrewrite') ->andReturn($IHTTPResultF); $networkMock - ->shouldReceive('fetchFull') + ->shouldReceive('get') ->with('http://test/install/testrewrite') ->andReturn($IHTTPResultW);