Closed
Description
Q | A |
---|---|
Bug? | yes |
New Feature? | no |
Version | 1.2.1 |
Actual Behavior
An Http\Client\Common\Exception\CircularRedirectionException
is thrown when executing the following code:
<?php
require 'vendor/autoload.php';
use Http\Adapter\Guzzle6\Client as HttpClient;
use Http\Client\Common\PluginClient;
use Http\Client\Common\Plugin\RedirectPlugin;
use Http\Message\MessageFactory\GuzzleMessageFactory as MessageFactory;
$message = new MessageFactory;
$pluginClient = new PluginClient(new HttpClient, [
new RedirectPlugin,
]);
$request = $message->createRequest('GET', 'http://www.artstation.com/artwork.rss');
$response = $pluginClient->sendRequest($request);
var_dump($response->getBody()->getContents());
Expected Behavior
No exception should be thrown, since http://www.artstation.com/artwork.rss redirects to https://www.artstation.com/artwork.rss (http
-> https
)
Steps to Reproduce
Execute the code above.
Possible Solutions
The issue is on line 162, where the circular redirection detection is done.
This line of code:
if (in_array($redirectRequest->getRequestTarget(), $this->circularDetection[$chainIdentifier]))
is checking if the current request target already exists in the circular detection map.
Because two lines before (160), the same value is being added, it will always be true
.
Metadata
Metadata
Assignees
Labels
No labels