Exemplo n.º 1
0
 public static function fromRequest(Request $request)
 {
     $commandLines = [];
     $commandLines[] = "curl -i";
     $commandLines[] = "-X " . $request->getMethod() . "";
     //curl -i -H "Accept: application/json" -H "Content-Type: application/json" http://hostname/resource
     $headers = $request->getAllHeaders();
     foreach ($headers as $name => $values) {
         foreach ($values as $value) {
             $commandLines[] = sprintf('-H "%s: %s"', $name, $value);
         }
     }
     $body = $request->getBody();
     if ($body !== null) {
         $commandLines[] = '-d "' . addslashes($body) . '"';
     }
     $commandLines[] = $request->getUri();
     return implode(" \\\n", $commandLines);
 }
 /**
  * Calculate the filename that the request should be cached as
  */
 public function calculateRequestFilename(Request $request)
 {
     $string = $request->getUri();
     $filename = parse_url($string, PHP_URL_HOST);
     $filename .= '_' . parse_url($string, PHP_URL_PATH);
     $headers = $request->getAllHeaders();
     ksort($headers);
     foreach ($headers as $header => $values) {
         $string .= $header;
         foreach ($values as $value) {
             $string .= $value;
         }
     }
     $filename .= '_' . sha1($string);
     if (strpos($filename, '_') === 0) {
         //Makes sorting not be crap
         $filename = substr($filename, 1);
     }
     return $this->cacheDirectory . '/' . $filename . '.cache';
 }
Exemplo n.º 3
0
 /**
  * @TODO Send absolute URIs in the request line when using a proxy server
  *       Right now this doesn't matter because all proxy requests use a CONNECT
  *       tunnel but this likely will not always be the case.
  */
 private function generateRawRequestHeaders(Request $request)
 {
     $uri = $request->getUri();
     $uri = new Uri($uri);
     $requestUri = $uri->getPath() ?: '/';
     if ($query = $uri->getQuery()) {
         $requestUri .= '?' . $query;
     }
     $str = $request->getMethod() . ' ' . $requestUri . ' HTTP/' . $request->getProtocol() . "\r\n";
     foreach ($request->getAllHeaders() as $field => $valueArr) {
         foreach ($valueArr as $value) {
             $str .= "{$field}: {$value}\r\n";
         }
     }
     $str .= "\r\n";
     return $str;
 }