Example #1
0
 private function addContentLength(puzzle_message_RequestInterface $request, puzzle_stream_StreamInterface $body)
 {
     // Set the Content-Length header if it can be determined, and never
     // send a Transfer-Encoding: chunked and Content-Length header in
     // the same request.
     if ($request->hasHeader('Content-Length')) {
         // Remove transfer-encoding if content-length is set.
         $request->removeHeader('Transfer-Encoding');
         return;
     }
     if ($request->hasHeader('Transfer-Encoding')) {
         return;
     }
     if (null !== ($size = $body->getSize())) {
         $request->setHeader('Content-Length', $size)->removeHeader('Transfer-Encoding');
     } elseif ('1.1' == $request->getProtocolVersion()) {
         // Use chunked Transfer-Encoding if there is no determinable
         // content-length header and we're using HTTP/1.1.
         $request->setHeader('Transfer-Encoding', 'chunked')->removeHeader('Content-Length');
     }
 }