private function createRequest($type, $method = null, $arguments = null, Headers $headers = null) { $request = new Request(); $request->setType($type); $requestHeaders = $this->defaultHeaders ? clone $this->defaultHeaders : new Headers(); if ($headers) { $requestHeaders->merge($headers); } $request->setHeaders($requestHeaders); if ($method) { $contentType = $requestHeaders->get('content-type'); $arguments = $this->serializer->serializeArguments($method, $arguments, $contentType); $request->setMethodName($method)->setArgumentsBody($arguments); } return $request; }