/** * @return Response des Aufrufes */ public function process() { if (!isset($this->url) || $this->url === '') { throw new RequestException('Request kann nicht gesendet werden. URL ist leer'); } //if (curl_getopt($this->ch, CURLOPT_URL) == '') throw new RequestException('Request kann nicht gesendet werden. wurde vorher init() aufgerufen? (CURLOPT_URL nicht gesetzt).'); /* speicher die responseHeaders in unserer variable die wir an die response weitergeben */ $this->setOption(CURLOPT_HEADERFUNCTION, array($this, 'callbackHeader')); $this->responseHeader = NULL; /* Ausführen */ $rawResponse = curl_exec($this->ch); if (curl_error($this->ch) != "") { throw new RequestException(sprintf("Fehler beim Aufruf von URL: '%s' CURL-Error: '%s'", $this->url, curl_error($this->ch)), curl_errno($this->ch)); } try { $this->response = new Response($rawResponse, HTTP\Header::parse($this->responseHeader)); } catch (\Psc\Exception $e) { throw new RequestException('Aus dem Request konnte keine Response erstellt werden. ' . $e->getMessage(), 0, $e); } $this->headers = curl_getinfo($this->ch, CURLINFO_HEADER_OUT); curl_close($this->ch); $this->manager->dispatchEvent(self::EVENT_PROCESSED, array('response' => $this->response, 'headers' => $this->headers), $this); return $rawResponse; }