/** * @return Request */ protected function convertRequest(RequestInterface $request, array $options) { $artaxRequest = new Request(); $artaxRequest->setProtocol($request->getProtocolVersion()); $artaxRequest->setMethod($request->getMethod()); $artaxRequest->setUri((string) $request->getUri()); $artaxRequest->setAllHeaders($request->getHeaders()); $body = $request->getBody(); if ($body->getSize() === null || $body->getSize() > 0) { $body->rewind(); $artaxRequest->setBody(new PsrStreamIterator($body)); } return $artaxRequest; }
/** * @param $gauges Gauge[] * @param $counters Counter[] */ function send($gauges, $counters) { $client = new ArtaxClient(); $client->setAllOptions([ArtaxClient::OP_MS_CONNECT_TIMEOUT => 2000, ArtaxClient::OP_MS_TRANSFER_TIMEOUT => 3000]); $request = new Request(); $request->setUri("https://metrics-api.librato.com/v1/metrics"); $request->setProtocol('1.1'); $request->setMethod('POST'); $request->setHeader("Content-Type", "application/json"); $auth = base64_encode($this->libratoConfig->getLibratoUsername() . ':' . $this->libratoConfig->getLibratoKey()); $request->setHeader("Authorization", "Basic {$auth}"); $data = []; //working //"{"gauges":[{"name":"Queue.ImagickTaskQueue","value":0,"source":"test.phpimagick.com"}]}" if (count($gauges)) { $gaugeEntries = []; foreach ($gauges as $gauge) { $arrayed = $gauge->convertToArray(); $gaugeEntries = array_merge($gaugeEntries, $arrayed); } $data["gauges"] = $gaugeEntries; } if (count($counters)) { $counterEntries = []; foreach ($counters as $counter) { $arrayed = $counter->convertToArray(); if (is_array($arrayed) == true) { $counterEntries = array_merge($counterEntries, $arrayed); } else { $counterEntries[] = $arrayed; } } $data["counters"] = $counterEntries; } $body = json_encode($data); $request->setBody($body); var_dump($body); try { $promise = $client->request($request); /** @var $response \Amp\Artax\Response */ $response = \Amp\wait($promise); echo "Status " . $response->getStatus() . "\n"; echo $response->getBody(); } catch (SocketException $se) { echo "Artax\\SocketExeption" . $se->getMessage(); } }
private function normalizeRequestProtocol(Request $request) { if (!($protocol = $request->getProtocol())) { $request->setProtocol('1.1'); } elseif (!($protocol == '1.0' || $protocol == '1.1')) { throw new \InvalidArgumentException('Invalid request protocol: ' . $protocol); } }