Completed
Push — master ( 96b0b0...9207bb )
by smiley
01:30
created

URLExtractor::getResponses()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * Class URLExtractor
4
 *
5
 * @filesource   URLExtractor.php
6
 * @created      15.08.2019
7
 * @package      chillerlan\HTTP\Psr18
8
 * @author       smiley <[email protected]>
9
 * @copyright    2019 smiley
10
 * @license      MIT
11
 */
12
13
namespace chillerlan\HTTP\Psr18;
14
15
use chillerlan\HTTP\Psr7\Request;
16
use Psr\Http\Message\{RequestInterface, ResponseInterface};
17
18
class URLExtractor extends CurlClient{
19
20
	/**
21
	 * @var \Psr\Http\Message\ResponseInterface[]
22
	 */
23
	protected $responses = [];
24
25
	/**
26
	 * @inheritDoc
27
	 */
28
	public function sendRequest(RequestInterface $request):ResponseInterface{
29
30
		do{
31
			$response = parent::sendRequest($request);
32
			$request  = new Request($request->getMethod(), $response->getHeaderLine('location'));
33
			$this->responses[] = $response;
34
		}
35
		while(\in_array($response->getStatusCode(), [301, 302, 303, 307, 308], true));
36
37
		return $response;
38
	}
39
40
	/**
41
	 * @return \Psr\Http\Message\ResponseInterface[]
42
	 */
43
	public function getResponses():array{
44
		return $this->responses;
45
	}
46
47
}
48