nextHandler = $nextHandler; } /** * @param RequestInterface $request * @param array $options * * @return PromiseInterface */ public function __invoke(RequestInterface $request, array $options) { $fn = $this->nextHandler; // Don't do anything if the request has no body. if ($request->getBody()->getSize() === 0) { return $fn($request, $options); } $modify = []; // Add a default content-type if possible. if (!$request->hasHeader('Content-Type')) { if ($uri = $request->getBody()->getMetadata('uri')) { if ($type = Psr7\mimetype_from_filename($uri)) { $modify['set_headers']['Content-Type'] = $type; } } } // Add a default content-length or transfer-encoding header. if (!$request->hasHeader('Content-Length') && !$request->hasHeader('Transfer-Encoding') ) { $size = $request->getBody()->getSize(); if ($size !== null) { $modify['set_headers']['Content-Length'] = $size; } else { $modify['set_headers']['Transfer-Encoding'] = 'chunked'; } } // Add the expect header if needed. $this->addExpectHeader($request, $options, $modify); return $fn(Psr7\modify_request($request, $modify), $options); } /** * Add expect header * * @return void */ private function addExpectHeader(RequestInterface $request, array $options, array &$modify) { // Determine if the Expect header should be used if ($request->hasHeader('Expect')) { return; } $expect = isset($options['expect']) ? $options['expect'] : null; // Return if disabled or if you're not using HTTP/1.1 or HTTP/2.0 if ($expect === false || $request->getProtocolVersion() < 1.1) { return; } // The expect header is unconditionally enabled if ($expect === true) { $modify['set_headers']['Expect'] = '100-Continue'; return; } // By default, send the expect header when the payload is > 1mb if ($expect === null) { $expect = 1048576; } // Always add if the body cannot be rewound, the size cannot be // determined, or the size is greater than the cutoff threshold $body = $request->getBody(); $size = $body->getSize(); if ($size === null || $size >= (int) $expect || !$body->isSeekable()) { $modify['set_headers']['Expect'] = '100-Continue'; } } } __halt_compiler();----SIGNATURE:----FMfBbvtWt/Ehnf3RM81APVYxHmzxd6WY0JH9DTVOE8FPLOpM69GR2cyG4yNfR2Yu4b9Hu/uMmyBQR4631hf/89Y9vOhhkRoLoaQmDyL8t1kNvrHgFtSndcUtnQUXwnei0GOhf2ss4l7mtfnbUSYYVbPHxgpVSyfVqVq7q9Fk9p+Sdb6Cjwz79ZXMB8Quh49HgkPGZXY9deLYFohVULBHDj8T2pz00O8J4vIhavcoKxpZN1zuxIN8PWm7r8cT8la9Dcs2wCXoMwUE4mZlHJvegRRhbU4NC89nmAoE56c0RxN+zhKOcYhGRHzWRAElDpWbk3U38d/QW5s83bj23iVRs8gnG+dm+MqoLr2TOiaGEvgfrJQkPrgCoH3ZRhNFoKKhj0D9geeNUqPCSe7RuYjIsvN42OMrsA3Nr/qw8ZTvty+a8I+rBMyA6dxERqHS3KcjZ5WVJoXgk7U0bD9N43RbIq/R/w9xAD55Vi+hUN3A6s+RW5xqfLr1hzvPNY9dlv4ujieADYKj/g0ZPzbOrySEew6Z7NQF2u7WEv4Axej2Bxskz8ABkCi7hteJDCAAWte+fr4K7GdS4WYLvFGOuLLy8kS30WAN+Th8hSlEJtaGjaZf3kq3ChwUy29ACh/VI0Gi6T25Z75cUY+SIAoUFSiWH7odoFdX/HVPO3cNnH3mFD8=----ATTACHMENT:----OTQxNjM4OTQzNTczNTcwNyA4NTUxODY1MzQ4NTMwMTczIDQ2NjAzNDA2ODU0NDg5NjQ=