/** * {@inheritdoc} */ public function perform(OperationInterface $operation, ConfigurationInterface $configuration) { $preparedRequestParams = $this->prepareRequestParams($operation, $configuration); $queryString = $this->buildQueryString($preparedRequestParams, $configuration); $uri = new Uri(sprintf($this->requestTemplate, $configuration->getCountry(), $queryString)); $request = new \GuzzleHttp\Psr7\Request('GET', $uri->withScheme($this->scheme), ['User-Agent' => 'ApaiIO [' . ApaiIO::VERSION . ']']); $result = $this->client->send($request); return $result->getBody()->getContents(); }
private function executeKohanaRequest(ServerRequestInterface $request, $redirect = 0) { if ($redirect >= self::MAX_REDIRECTS) { throw new LogicException(sprintf('Maximum Number of redirects (%s) for url %s', self::MAX_REDIRECTS, $request->getUri())); } Request::$initial = $kohanaRequest = $this->getKohanaRequest($request); Request::$user_agent = self::USER_AGENT; $_FILES = $request->getAttribute('FILES'); $kohanaResponse = $kohanaRequest->execute(); $this->current = $request; $status = $kohanaResponse->status(); if ($status >= 300 && $status < 400) { $redirectUri = new Psr7\Uri($kohanaResponse->headers('location')); $localUri = $redirectUri->withScheme(null)->withUserInfo(null)->withHost(null)->withPort(null); return $this->executeKohanaRequest(new Psr7\ServerRequest('GET', $localUri), $redirect + 1); } return $kohanaResponse; }