Zend_Http_Client_Adapter_Socket::write PHP Méthode

write() public méthode

Send request to the remote server
public write ( string $method, Zend_Uri_Http $uri, string $http_ver = '1.1', array $headers = [], string $body = '' ) : string
$method string
$uri Zend_Uri_Http
$http_ver string
$headers array
$body string
Résultat 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) {
            require_once 'Zend/Http/Client/Adapter/Exception.php';
            throw new Zend_Http_Client_Adapter_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()) {
            require_once 'Zend/Http/Client/Adapter/Exception.php';
            throw new Zend_Http_Client_Adapter_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)) {
            require_once 'Zend/Http/Client/Adapter/Exception.php';
            throw new Zend_Http_Client_Adapter_Exception('Error writing request to server');
        }
        if (is_resource($body)) {
            if (stream_copy_to_stream($body, $this->socket) == 0) {
                require_once 'Zend/Http/Client/Adapter/Exception.php';
                throw new Zend_Http_Client_Adapter_Exception('Error writing request to server');
            }
        }
        return $request;
    }

Usage Example

 /**
  * Send request to the remote server
  *
  * @param string        $method   Method
  * @param Zend_Uri_Http $uri      Uri
  * @param string        $http_ver HTTP version
  * @param array         $headers  Headers
  * @param string        $body     Body
  *
  * @return string Request as string
  */
 public function write($method, $uri, $http_ver = '1.1', $headers = array(), $body = '')
 {
     $request = false;
     if (Mage::app()->useCache(self::CACHE_TYPE)) {
         $this->_params = $uri->getQueryAsArray();
         try {
             $request = parent::write($method, $uri, $http_ver, $headers, $body);
         } catch (Zend_Http_Client_Adapter_Exception $e) {
             Mage::log("{$this->_code} [socket]: {$e->getMessage()}");
         }
     } else {
         $request = parent::write($method, $uri, $http_ver, $headers, $body);
     }
     return $request;
 }
All Usage Examples Of Zend_Http_Client_Adapter_Socket::write