Exemplo n.º 1
0
 /**
  * @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;
 }