public function request(Query $query, $params = []) { $params['format'] = 'json'; $params['q'] = $query->getQuery(); $queryString = $this->buildHttpQueryString($params); $response = $this->client->request('GET', $this->buildBaseUrl() . '?' . $queryString); $rawContents = GuzzleHttp\json_decode($response->getBody()->getContents()); return $rawContents->query; }
/** * @param Route $route * @return Promise|PromiseInterface * @throws \LogicException * @throws \InvalidArgumentException */ public function request(Route $route) { $request = $this->prepareRequest($this->gitter->token, $route); $this->logRequest($request); $responsePromise = $this->client->sendAsync($request, $this->options); $promise = new Promise(function ($unwrap = true) use($responsePromise) { $responsePromise->wait($unwrap); }); $responsePromise->then(function (ResponseInterface $response) use($promise) { $this->logResponse($response); $promise->resolve(json((string) $response->getBody(), true)); }); return $promise; }
/** * @param $url * @return Message[] * @throws RuntimeException */ public function validateUrl($url) { $response = $this->client->get('', ['query' => ['doc' => $url, 'parser' => $this->parser, 'out' => 'json']]); if ($response->getStatusCode() !== 200) { throw new RuntimeException('Server responded with HTTP status ' . $response->getStatusCode()); } if (strpos($response->getHeaderLine('Content-Type'), 'application/json') === false) { throw new RuntimeException('Server did not respond with the expected content-type (application/json)'); } $messages = []; $result = json_decode($response->getBody(), true); if (!isset($result['messages'])) { return $messages; } foreach ($result['messages'] as $messageAttributes) { $messages[] = new Message($messageAttributes); } return $messages; }
/** * @param $url * @return Message[] * @throws RuntimeException */ public function validateUrl($url) { $response = $this->client->get('', ['query' => ['uri' => $url, 'profile' => $this->profile, 'warning' => $this->warningLevel, 'output' => 'json']]); if ($response->getStatusCode() !== 200) { throw new RuntimeException('Server responded with HTTP status ' . $response->getStatusCode()); } if (strpos($response->getHeaderLine('Content-Type'), 'application/json') === false) { throw new RuntimeException('Server did not respond with the expected content-type (application/json)'); } $messages = []; $result = json_decode($response->getBody(), true); if (isset($result['cssvalidation']['errors'])) { foreach ($result['cssvalidation']['errors'] as $messageAttributes) { $messages[] = new Message('error', $messageAttributes); } } if (isset($result['cssvalidation']['warnings'])) { foreach ($result['cssvalidation']['warnings'] as $messageAttributes) { $warnings[] = new Message('warning', $messageAttributes); } } return $messages; }
public function post($path, $parameters = [], $data = '', $autoresolveDeferred = true, string $contentType = null) { if ($contentType) { switch ($contentType) { case 'xml': case 'json': break; default: throw new InvalidArgumentException("contentType '{$contentType}' is invalid"); } } else { $contentType = 'xml'; } $response = parent::post($path, $parameters, $data, $autoresolveDeferred); switch ($contentType) { case 'xml': return (string) $response->getBody(); case 'json': return json_decode((string) $response->getBody(), true); } }