Merge pull request #11727 from nupplaphil/bug/redirect

Fix HTTP Client redirect Bug
This commit is contained in:
Hypolite Petovan 2022-07-12 15:24:58 -04:00 committed by GitHub
commit a2c929d128
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 5 deletions

View File

@ -94,11 +94,11 @@ class HttpClient extends BaseFactory
$guzzle = new GuzzleHttp\Client([ $guzzle = new GuzzleHttp\Client([
RequestOptions::ALLOW_REDIRECTS => [ RequestOptions::ALLOW_REDIRECTS => [
'max' => 8, 'max' => 8,
'on_redirect' => $onRedirect, 'on_redirect' => $onRedirect,
'track_redirect' => true, 'track_redirects' => true,
'strict' => true, 'strict' => true,
'referer' => true, 'referer' => true,
], ],
RequestOptions::HTTP_ERRORS => false, RequestOptions::HTTP_ERRORS => false,
// Without this setting it seems as if some webservers send compressed content // Without this setting it seems as if some webservers send compressed content

View File

@ -49,4 +49,19 @@ class HTTPClientTest extends MockedTest
self::assertFalse(DI::httpClient()->get('https://friendica.local')->isSuccess()); self::assertFalse(DI::httpClient()->get('https://friendica.local')->isSuccess());
} }
/**
* Test for issue https://github.com/friendica/friendica/issues/11726
*/
public function testRedirect()
{
$this->httpRequestHandler->setHandler(new MockHandler([
new Response(302, ['Location' => 'https://mastodon.social/about']),
new Response(200, ['Location' => 'https://mastodon.social']),
]));
$result = DI::httpClient()->get('https://mastodon.social');
self::assertEquals('https://mastodon.social', $result->getUrl());
self::assertEquals('https://mastodon.social/about', $result->getRedirectUrl());
}
} }