Catch TransferExceptions for HTTPClient::finalUrl() in case the headers are empty
This commit is contained in:
parent
e88c12d958
commit
b76634ea0c
|
@ -220,7 +220,7 @@ class HTTPClient implements IHTTPClient
|
|||
$urlResult = $this->resolver->resolveURL($url);
|
||||
|
||||
if ($urlResult->didErrorOccur()) {
|
||||
throw new TransferException($urlResult->getErrorMessageString());
|
||||
throw new TransferException($urlResult->getErrorMessageString(), $urlResult->getHTTPStatusCode());
|
||||
}
|
||||
|
||||
return $urlResult->getURL();
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
|
||||
namespace Friendica\Network;
|
||||
|
||||
use GuzzleHttp\Exception\TransferException;
|
||||
|
||||
/**
|
||||
* Interface for calling HTTP requests and returning their responses
|
||||
*/
|
||||
|
@ -124,7 +126,8 @@ interface IHTTPClient
|
|||
* @param string $url A user-submitted URL
|
||||
*
|
||||
* @return string A canonical URL
|
||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||
*
|
||||
* @throws TransferException In case there's an error during the resolving
|
||||
*/
|
||||
public function finalUrl(string $url);
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@ use Friendica\Util\ParseUrl;
|
|||
use Friendica\Util\Proxy;
|
||||
use Friendica\Util\Strings;
|
||||
use Friendica\Util\XML;
|
||||
use GuzzleHttp\Exception\TransferException;
|
||||
|
||||
/**
|
||||
* This class contain functions to import feeds (RSS/RDF/Atom)
|
||||
|
@ -297,7 +298,11 @@ class Feed
|
|||
|
||||
$orig_plink = $item["plink"];
|
||||
|
||||
$item["plink"] = DI::httpClient()->finalUrl($item["plink"]);
|
||||
try {
|
||||
$item["plink"] = DI::httpClient()->finalUrl($item["plink"]);
|
||||
} catch (TransferException $exception) {
|
||||
Logger::notice('Item URL couldn\'t get expanded', ['url' => $item["plink"], 'exception' => $exception]);
|
||||
}
|
||||
|
||||
$item["title"] = XML::getFirstNodeValue($xpath, 'atom:title/text()', $entry);
|
||||
|
||||
|
|
Loading…
Reference in a new issue