/** * Converts a PSR request into a BuzzRequest request. * * @param RequestInterface $request * * @return BuzzRequest */ private function createRequest(RequestInterface $request) { $buzzRequest = new BuzzRequest(); $buzzRequest->setMethod($request->getMethod()); $buzzRequest->fromUrl($request->getUri()->__toString()); $buzzRequest->setProtocolVersion($request->getProtocolVersion()); $buzzRequest->setContent((string) $request->getBody()); $this->addPsrHeadersToBuzzRequest($request, $buzzRequest); return $buzzRequest; }
/** * @param ConfigurationInterface $configuration * @param PayURequestInterface $request * * @return Request */ public function build(ConfigurationInterface $configuration, PayURequestInterface $request) { $curlRequest = new Request(); if (PayURequestInterface::METHOD_POST === $request->getMethod()) { $curlRequest->setContent($this->serializer->toJson($request->getDataObject())); } $curlRequest->setHost(sprintf('%s://%s/', $configuration->getProtocol(), $configuration->getDomain())); $curlRequest->setResource(sprintf('%s/%s/%s', $configuration->getPath(), $configuration->getVersion(), $request->getPath())); $curlRequest->setMethod($request->getMethod()); $this->addHeaders($curlRequest, $configuration); return $curlRequest; }
/** * Helper to send requests to Metrics API. * * @param string $path Path after metrics api version. * @param string $method HTTP Mthod, 'GET' or 'POST'. * @param array<string,array> $data Metrics data. * * @return stdClass */ protected function request($path, $method, array $data = array()) { $request = new Request(); $response = new Response(); $transport = $this->getTransport(); $request->setMethod($method); $request->setResource($this->buildPath($path)); $request->setHost(self::URI); $request->addHeader('Authorization: Basic ' . base64_encode($this->getAuthCredentials())); $request->addHeader('User-Agent: ' . $this->getUserAgent()); if (count($data)) { $request->addHeader('Content-Type: application/json'); $request->setContent(json_encode($data)); } $transport->send($request, $response); return json_decode($response->getContent()); }
public function testDigestAuthHeader() { $request = new Message\Request(); $request->setMethod('GET'); $request->setResource('/auth-digest'); $request->setHost('http://test.webdav.org'); $request->setProtocolVersion('1.1'); $response = new Message\Response(); $response->setHeaders(array("Date: Wed, 24 Jun 2015 21:49:39 GMT", "Server: Apache/2.0.54 (Debian GNU/Linux) DAV/2 SVN/1.3.2", "WWW-Authenticate: Digest realm=\"test\", nonce=\"5PvRe0oZBQA=874ad6aea3519069f30dfc704e594dde6e01b2a6\", algorithm=MD5, domain=\"/auth-digest/\", qop=\"auth\"", "Content-Length: 401", "Content-Type: text/html; charset=iso-8859-1")); $response->setContent("<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>401 Authorization Required</title>\n</head><body>\n<h1>Authorization Required</h1>\n<p>This server could not verify that you\nare authorized to access the document\nrequested. Either you supplied the wrong\ncredentials (e.g., bad password), or your\nbrowser doesn\\'t understand how to supply\nthe credentials required.</p>\n</body></html>"); // Simulate the First Request/Response, where the server returns 401 $listener = new DigestAuthListener('user1', 'user1'); $listener->preSend($request); $listener->postSend($request, $response); // Simulate sending the second Request using the calculated Authorization Header $request = new Message\Request(); $request->setMethod('GET'); $request->setResource('/auth-digest'); $request->setHost('http://test.webdav.org'); $request->setProtocolVersion('1.1'); $this->assertEmpty($request->getHeader('Authorization')); $listener->preSend($request); $this->assertEquals('Digest username="******", realm="test", nonce="5PvRe0oZBQA=874ad6aea3519069f30dfc704e594dde6e01b2a6", response="b2cf05a5d3f51d84a8866309aed6cb5d", uri="/auth-digest"', $request->getHeader('Authorization')); }
/** * @param int $paymentOrderId * @param float $amount * @param string $currency * * @return array */ public function PaymentOrderRefund($paymentOrderId, $amount, $currency) { $request = new Request(); $request->setMethod('POST'); foreach (array('paymentOrderId', 'amount', 'currency') as $param) { if (null == ${$param}) { throw new InvalidArgumentException($param); } } $params = array('PaymentOrderId' => $paymentOrderId, 'RefundAmount' => $amount, 'Currency' => $currency); $request->setContent(json_encode($params)); return $this->doRequest('PaymentOrder/Refund', $request)->getContentJson(); }
public function testSetMethod() { $request = new Request(); $request->setMethod('get'); $this->assertEquals('GET', $request->getMethod()); }