コード例 #1
0
ファイル: Socket.php プロジェクト: bradley-holt/zf2
 /**
  * Send request to the remote server
  *
  * @param string        $method
  * @param \Zend\URI\URL $uri
  * @param string        $http_ver
  * @param array         $headers
  * @param string        $body
  * @return string Request as string
  */
 public function write($method, $uri, $http_ver = '1.1', $headers = array(), $body = '')
 {
     // Make sure we're properly connected
     if (!$this->socket) {
         throw new Exception('Trying to write but we are not connected');
     }
     $host = $uri->getHost();
     $host = (strtolower($uri->getScheme()) == 'https' ? $this->config['ssltransport'] : 'tcp') . '://' . $host;
     if ($this->connected_to[0] != $host || $this->connected_to[1] != $uri->getPort()) {
         throw new Exception('Trying to write but we are connected to the wrong host');
     }
     // Save request method for later
     $this->method = $method;
     // Build request headers
     $path = $uri->getPath();
     if ($uri->getQuery()) {
         $path .= '?' . $uri->getQuery();
     }
     $request = "{$method} {$path} HTTP/{$http_ver}\r\n";
     foreach ($headers as $k => $v) {
         if (is_string($k)) {
             $v = ucfirst($k) . ": {$v}";
         }
         $request .= "{$v}\r\n";
     }
     if (is_resource($body)) {
         $request .= "\r\n";
     } else {
         // Add the request body
         $request .= "\r\n" . $body;
     }
     // Send the request
     if (!@fwrite($this->socket, $request)) {
         throw new Exception('Error writing request to server');
     }
     if (is_resource($body)) {
         if (stream_copy_to_stream($body, $this->socket) == 0) {
             throw new Exception('Error writing request to server');
         }
     }
     return $request;
 }
コード例 #2
0
ファイル: HTTP.php プロジェクト: stunti/zf2
 /**
  * Constructor
  *
  * If a $uri is passed, the object will attempt to populate itself using
  * that information.
  *
  * @param string|\Zend\Uri\Uri $uri
  * @return void
  * @throws \Zend\Controller\Request\Exception when invalid URI passed
  */
 public function __construct($uri = null)
 {
     if (null !== $uri) {
         if (!$uri instanceof URI\URL) {
             $uri = new URI\URL($uri);
         }
         if ($uri->isValid()) {
             $path = $uri->getPath();
             $query = $uri->getQuery();
             if (!empty($query)) {
                 $path .= '?' . $query;
             }
             $this->setRequestUri($path);
         } else {
             throw new Exception('Invalid URI provided to constructor');
         }
     } else {
         $this->setRequestUri();
     }
 }
コード例 #3
0
ファイル: UrlTest.php プロジェクト: alab1001101/zf2
 /**
  * @group ZF-1480
  */
 public function testRemoveQueryParametersModifiesQueryAndReturnsOldQuery()
 {
     $url = new URL('http://example.com/foo/?a=1&b=2&c=3&d=4');
     $url->removeQueryParameters(array('b', 'd', 'e'));
     $this->assertEquals(array('a' => 1, 'c' => 3), $url->getQueryAsArray());
     $this->assertEquals('a=1&c=3', $url->getQuery());
 }
コード例 #4
0
ファイル: Test.php プロジェクト: bradley-holt/zf2
 /**
  * Send request to the remote server
  *
  * @param string        $method
  * @param \Zend\URI\URL $uri
  * @param string        $http_ver
  * @param array         $headers
  * @param string        $body
  * @return string Request as string
  */
 public function write($method, $uri, $http_ver = '1.1', $headers = array(), $body = '')
 {
     $host = $uri->getHost();
     $host = strtolower($uri->getScheme()) == 'https' ? 'sslv2://' . $host : $host;
     // Build request headers
     $path = $uri->getPath();
     if ($uri->getQuery()) {
         $path .= '?' . $uri->getQuery();
     }
     $request = "{$method} {$path} HTTP/{$http_ver}\r\n";
     foreach ($headers as $k => $v) {
         if (is_string($k)) {
             $v = ucfirst($k) . ": {$v}";
         }
         $request .= "{$v}\r\n";
     }
     // Add the request body
     $request .= "\r\n" . $body;
     // Do nothing - just return the request as string
     return $request;
 }