public function testDeleteRequestWithBody() { $request = new HttpRequest(); $request->setMethod('DELETE'); $request->setUrl('http://httpbin.org/delete?foo=23&bar=42'); $request->setBody(array('foo' => 23, 'bar' => 42)); $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); } }); $response = $request->send(); $headers = $response->getHeaders(); $this->assertEquals('HTTP/1.1 200 OK', $headers->get('Status')); $this->assertEquals('application/json', $headers->get('Content-Type')->getMimeType()); $body = $response->getBody(); $this->assertEquals(23, $body->args->foo); $this->assertEquals(42, $body->args->bar); $this->assertEquals(23, $body->form->foo); $this->assertEquals(42, $body->form->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; }