/** * 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); }
/** * 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); }