PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.20
Booking for Appointments and Events Calendar – Amelia v1.2.20
2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / vendor / php-http / client-common / src / Plugin / ContentLengthPlugin.php
ameliabooking / vendor / php-http / client-common / src / Plugin Last commit date
AddHostPlugin.php 3 years ago AddPathPlugin.php 3 years ago AuthenticationPlugin.php 3 years ago BaseUriPlugin.php 3 years ago ContentLengthPlugin.php 3 years ago ContentTypePlugin.php 3 years ago CookiePlugin.php 3 years ago DecoderPlugin.php 3 years ago ErrorPlugin.php 3 years ago HeaderAppendPlugin.php 3 years ago HeaderDefaultsPlugin.php 3 years ago HeaderRemovePlugin.php 3 years ago HeaderSetPlugin.php 3 years ago HistoryPlugin.php 3 years ago Journal.php 3 years ago QueryDefaultsPlugin.php 3 years ago RedirectPlugin.php 3 years ago RequestMatcherPlugin.php 3 years ago RetryPlugin.php 3 years ago VersionBridgePlugin.php 3 years ago
ContentLengthPlugin.php
37 lines
1 <?php
2
3 namespace AmeliaHttp\Client\Common\Plugin;
4
5 use AmeliaHttp\Client\Common\Plugin;
6 use AmeliaHttp\Message\Encoding\ChunkStream;
7 use AmeliaPsr\Http\Message\RequestInterface;
8
9 /**
10 * Allow to set the correct content length header on the request or to transfer it as a chunk if not possible.
11 *
12 * @author Joel Wurtz <joel.wurtz@gmail.com>
13 */
14 final class ContentLengthPlugin implements Plugin
15 {
16 /**
17 * {@inheritdoc}
18 */
19 public function handleRequest(RequestInterface $request, callable $next, callable $first)
20 {
21 if (!$request->hasHeader('Content-Length')) {
22 $stream = $request->getBody();
23
24 // Cannot determine the size so we use a chunk stream
25 if (null === $stream->getSize()) {
26 $stream = new ChunkStream($stream);
27 $request = $request->withBody($stream);
28 $request = $request->withAddedHeader('Transfer-Encoding', 'chunked');
29 } else {
30 $request = $request->withHeader('Content-Length', (string) $stream->getSize());
31 }
32 }
33
34 return $next($request);
35 }
36 }
37