/** * @return \Blar\Http\HttpRequest */ public function createRequest() { $request = new HttpRequest(); $request->setMethod('POST'); $request->getHeaders()->set('Content-Type', 'application/xml'); $request->getHeaders()->set('Accept', 'application/xml, text/xml'); return $request; }
public function testHeaders() { $request = new HttpRequest(); $request->setUrl('http://httpbin.org/headers'); $request->on('responseReceived', function ($event) { $response = $event->getTarget(); if ($response->getHeaders()->get('Content-Type')->getMimeType() == 'application/json') { $decoded = json_decode($response->getBody()); $response->setBody($decoded); } }); $headers = $request->getHeaders(); $headers->set('foo', 23); $headers->set('bar', 42); $response = $request->send(); $headers = $response->getHeaders(); $this->assertEquals('HTTP/1.1 200 OK', $headers->get('Status')); $this->assertEquals('HTTP/1.1', $headers->get('Status')->getProtocol()); $this->assertEquals(200, $headers->get('Status')->getCode()); $this->assertEquals('OK', $headers->get('Status')->getMessage()); $this->assertEquals('application/json', $headers->get('Content-Type')); $body = $response->getBody(); $this->assertEquals(23, $body->headers->Foo); $this->assertEquals(42, $body->headers->Bar); }
/** * @param Blar\Http\HttpRequest $request Request. * @param Blar\Webservice\WebserviceMethod $method Method. * @return self */ protected function prepareRequest($request, $method) { $templateVariables = new Collection(); $query = new Query(); $body = array(); foreach ($method->getParameters() as $parameter) { switch ($parameter->getStyle()) { case 'template': $templateVariables->set($parameter->getName(), $parameter->getValue()); break; case 'query': $query->set($parameter->getName(), $parameter->getValue()); break; case 'header': $request->getHeaders()->set($parameter->getName(), $parameter->getValue()); break; case 'body': $body[$parameter->getName()] = $parameter->getValue(); break; } } $url = $method->getUrl(); $template = new UriTemplate($url); $url = $template->create($templateVariables); $url = new Url($url); $url->setQuery($query); $request->setUrl($url); $request->setBody($body); return $this; }