final class EasyHandle in Lockr 7.3
Represents a cURL easy handle and the data it populates.
@internal
Hierarchy
- class \GuzzleHttp\Handler\EasyHandle
Expanded class hierarchy of EasyHandle
File
- vendor/
guzzlehttp/ guzzle/ src/ Handler/ EasyHandle.php, line 14
Namespace
GuzzleHttp\HandlerView source
final class EasyHandle {
/** @var resource cURL resource */
public $handle;
/** @var StreamInterface Where data is being written */
public $sink;
/** @var array Received HTTP headers so far */
public $headers = [];
/** @var ResponseInterface Received response (if any) */
public $response;
/** @var RequestInterface Request being sent */
public $request;
/** @var array Request options */
public $options = [];
/** @var int cURL error number (if any) */
public $errno = 0;
/** @var \Exception Exception during on_headers (if any) */
public $onHeadersException;
/**
* Attach a response to the easy handle based on the received headers.
*
* @throws \RuntimeException if no headers have been received.
*/
public function createResponse() {
if (empty($this->headers)) {
throw new \RuntimeException('No headers have been received');
}
// HTTP-version SP status-code SP reason-phrase
$startLine = explode(' ', array_shift($this->headers), 3);
$headers = \GuzzleHttp\headers_from_lines($this->headers);
$normalizedKeys = \GuzzleHttp\normalize_header_keys($headers);
if (!empty($this->options['decode_content']) && isset($normalizedKeys['content-encoding'])) {
$headers['x-encoded-content-encoding'] = $headers[$normalizedKeys['content-encoding']];
unset($headers[$normalizedKeys['content-encoding']]);
if (isset($normalizedKeys['content-length'])) {
$headers['x-encoded-content-length'] = $headers[$normalizedKeys['content-length']];
$bodyLength = (int) $this->sink
->getSize();
if ($bodyLength) {
$headers[$normalizedKeys['content-length']] = $bodyLength;
}
else {
unset($headers[$normalizedKeys['content-length']]);
}
}
}
// Attach a response to the easy handle with the parsed headers.
$this->response = new Response($startLine[1], $headers, $this->sink, substr($startLine[0], 5), isset($startLine[2]) ? (string) $startLine[2] : null);
}
public function __get($name) {
$msg = $name === 'handle' ? 'The EasyHandle has been released' : 'Invalid property: ' . $name;
throw new \BadMethodCallException($msg);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
EasyHandle:: |
public | property | @var int cURL error number (if any) | |
EasyHandle:: |
public | property | @var resource cURL resource | |
EasyHandle:: |
public | property | @var array Received HTTP headers so far | |
EasyHandle:: |
public | property | @var \Exception Exception during on_headers (if any) | |
EasyHandle:: |
public | property | @var array Request options | |
EasyHandle:: |
public | property | @var RequestInterface Request being sent | |
EasyHandle:: |
public | property | @var ResponseInterface Received response (if any) | |
EasyHandle:: |
public | property | @var StreamInterface Where data is being written | |
EasyHandle:: |
public | function | Attach a response to the easy handle based on the received headers. | |
EasyHandle:: |
public | function |