示例#1
0
 /**
  * Sends the request body
  *
  * @throws   HTTP_Request2_MessageException
  */
 protected function writeBody()
 {
     if (in_array($this->request->getMethod(), self::$bodyDisallowed) || 0 == $this->contentLength) {
         return;
     }
     $position = 0;
     $bufferSize = $this->request->getConfig('buffer_size');
     $headers = $this->request->getHeaders();
     $chunked = isset($headers['transfer-encoding']);
     while ($position < $this->contentLength) {
         if (is_string($this->requestBody)) {
             $str = substr($this->requestBody, $position, $bufferSize);
         } elseif (is_resource($this->requestBody)) {
             $str = fread($this->requestBody, $bufferSize);
         } else {
             $str = $this->requestBody->read($bufferSize);
         }
         if (!$chunked) {
             $this->socket->write($str);
         } else {
             $this->socket->write(dechex(strlen($str)) . "\r\n{$str}\r\n");
         }
         // Provide the length of written string to the observer, request #7630
         $this->request->setLastEvent('sentBodyPart', strlen($str));
         $position += strlen($str);
     }
     // write zero-length chunk
     if ($chunked) {
         $this->socket->write("0\r\n\r\n");
     }
     $this->request->setLastEvent('sentBody', $this->contentLength);
 }
示例#2
0
 /**
  * Sends the request body
  *
  * @throws   HTTP_Request2_MessageException
  */
 protected function writeBody()
 {
     if (in_array($this->request->getMethod(), self::$bodyDisallowed) || 0 == $this->contentLength) {
         return;
     }
     $position = 0;
     $bufferSize = $this->request->getConfig('buffer_size');
     while ($position < $this->contentLength) {
         if (is_string($this->requestBody)) {
             $str = substr($this->requestBody, $position, $bufferSize);
         } elseif (is_resource($this->requestBody)) {
             $str = fread($this->requestBody, $bufferSize);
         } else {
             $str = $this->requestBody->read($bufferSize);
         }
         $this->socket->write($str);
         // Provide the length of written string to the observer, request #7630
         $this->request->setLastEvent('sentBodyPart', strlen($str));
         $position += strlen($str);
     }
     $this->request->setLastEvent('sentBody', $this->contentLength);
 }