PluginProbe
AutomatorWP – No-Code Workflow Automation, Integration & Webhooks Plugin, now with AI / 6.0.3
AutomatorWP – No-Code Workflow Automation, Integration & Webhooks Plugin, now with AI v6.0.3
6.0.3 6.0.2 6.0.1 6.0.0 5.8.6 5.8.5 5.8.4 5.8.3 5.8.2 5.8.1 5.8.0 5.7.9.2 5.7.9.1 5.7.8 5.7.9 5.7.6 5.7.7 5.7.5 5.7.4 5.7.3 5.7.2 5.7.1 trunk 5.6.0 5.6.1 All 34 releases
automatorwp / integrations / mailchimp / vendor / guzzlehttp / guzzle / src / Handler / EasyHandle.php

EasyHandle.php in AutomatorWP – No-Code Workflow Automation, Integration & Webhooks Plugin, now with AI 6.0.3, at integrations/mailchimp/vendor/guzzlehttp/guzzle/src/Handler/EasyHandle.php

113 lines 2.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace GuzzleHttp\Handler;
4
5 use GuzzleHttp\Psr7\Response;
6 use GuzzleHttp\Utils;
7 use Psr\Http\Message\RequestInterface;
8 use Psr\Http\Message\ResponseInterface;
9 use Psr\Http\Message\StreamInterface;
10
11 /**
12 * Represents a cURL easy handle and the data it populates.
13 *
14 * @internal
15 */
16 final class EasyHandle
17 {
18 /**
19 * @var resource|\CurlHandle cURL resource
20 */
21 public $handle;
22
23 /**
24 * @var StreamInterface Where data is being written
25 */
26 public $sink;
27
28 /**
29 * @var array Received HTTP headers so far
30 */
31 public $headers = [];
32
33 /**
34 * @var ResponseInterface|null Received response (if any)
35 */
36 public $response;
37
38 /**
39 * @var RequestInterface Request being sent
40 */
41 public $request;
42
43 /**
44 * @var array Request options
45 */
46 public $options = [];
47
48 /**
49 * @var int cURL error number (if any)
50 */
51 public $errno = 0;
52
53 /**
54 * @var \Throwable|null Exception during on_headers (if any)
55 */
56 public $onHeadersException;
57
58 /**
59 * @var \Exception|null Exception during createResponse (if any)
60 */
61 public $createResponseException;
62
63 /**
64 * Attach a response to the easy handle based on the received headers.
65 *
66 * @throws \RuntimeException if no headers have been received or the first
67 * header line is invalid.
68 */
69 public function createResponse(): void
70 {
71 [$ver, $status, $reason, $headers] = HeaderProcessor::parseHeaders($this->headers);
72
73 $normalizedKeys = Utils::normalizeHeaderKeys($headers);
74
75 if (!empty($this->options['decode_content']) && isset($normalizedKeys['content-encoding'])) {
76 $headers['x-encoded-content-encoding'] = $headers[$normalizedKeys['content-encoding']];
77 unset($headers[$normalizedKeys['content-encoding']]);
78 if (isset($normalizedKeys['content-length'])) {
79 $headers['x-encoded-content-length'] = $headers[$normalizedKeys['content-length']];
80
81 $bodyLength = (int) $this->sink->getSize();
82 if ($bodyLength) {
83 $headers[$normalizedKeys['content-length']] = $bodyLength;
84 } else {
85 unset($headers[$normalizedKeys['content-length']]);
86 }
87 }
88 }
89
90 // Attach a response to the easy handle with the parsed headers.
91 $this->response = new Response(
92 $status,
93 $headers,
94 $this->sink,
95 $ver,
96 $reason
97 );
98 }
99
100 /**
101 * @param string $name
102 *
103 * @return void
104 *
105 * @throws \BadMethodCallException
106 */
107 public function __get($name)
108 {
109 $msg = $name === 'handle' ? 'The EasyHandle has been released' : 'Invalid property: '.$name;
110 throw new \BadMethodCallException($msg);
111 }
112 }
113