コード例 #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);
 }
コード例 #2
0
 /**
  * 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';
 }
コード例 #3
0
ファイル: Client.php プロジェクト: softwarevamp/artax
 /**
  * @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;
 }
コード例 #4
0
ファイル: RequestTest.php プロジェクト: lt/artax
 public function testGetAndSetUri()
 {
     $request = new Request();
     $request->setUri('http://www.google.com');
     $this->assertEquals('http://www.google.com', $request->getUri());
 }
コード例 #5
0
 private function getNormalizedUrl(Request $request)
 {
     $uri = $request->getUri();
     $parsedUrl = parse_url($uri);
     return sprintf('%s://%s%s', $parsedUrl['scheme'], $parsedUrl['host'], $parsedUrl['path']);
 }
コード例 #6
0
ファイル: Oauth1.php プロジェクト: danack/artaxservicebuilder
 /**
  * Returns a Nonce Based on the unique id and URL.
  *
  * This will allow for multiple requests in parallel with the same exact
  * timestamp to use separate nonce's.
  *
  * @param \Amp\Artax\Request $request Request to generate a nonce for
  *
  * @return string
  */
 public function generateNonce(Request $request)
 {
     return sha1(uniqid('', true) . $request->getUri());
 }