/** * @inheritdoc */ public function format(Request $request) { $data = (array) $request->getData(); $content = http_build_query($data, '', '&', $this->encodingType); if (strcasecmp('get', $request->getMethod()) === 0) { if (!empty($content)) { $url = $request->getUrl(); $url .= strpos($url, '?') === false ? '?' : '&'; $url .= $content; $request->setUrl($url); } return $request; } $request->getHeaders()->set('Content-Type', 'application/x-www-form-urlencoded'); $request->setContent($content); return $request; }
/** * Prepare request for execution, creating cURL resource for it. * @param Request $request request instance. * @return array cURL options. */ private function prepare($request) { $request->prepare(); $curlOptions = $this->composeCurlOptions($request->getOptions()); $method = strtoupper($request->getMethod()); switch ($method) { case 'GET': break; case 'POST': $curlOptions[CURLOPT_POST] = true; break; default: $curlOptions[CURLOPT_CUSTOMREQUEST] = $method; } $content = $request->getContent(); if ($content !== null) { $curlOptions[CURLOPT_POSTFIELDS] = $content; } $curlOptions[CURLOPT_RETURNTRANSFER] = true; $curlOptions[CURLOPT_URL] = $request->getUrl(); $curlOptions[CURLOPT_HTTPHEADER] = $request->composeHeaderLines($request); return $curlOptions; }