/var/www/vhosts/ihelp.ro/httpdocs/vendor/cakephp/cakephp/src/Http/Client
Edit: /var/www/vhosts/ihelp.ro/httpdocs/vendor/cakephp/cakephp/src/Http/Client/Request.php (3168B)
$headers
* @param string $url The request URL
* @param string $method The HTTP method to use.
* @param array $headers The HTTP headers to set.
* @param array|string|null $data The request body to use.
*/
public function __construct(string $url = '', string $method = self::METHOD_GET, array $headers = [], $data = null)
{
$this->setMethod($method);
$this->uri = $this->createUri($url);
$headers += [
'Connection' => 'close',
'User-Agent' => ini_get('user_agent') ?: 'CakePHP',
];
$this->addHeaders($headers);
if ($data === null) {
$this->stream = new Stream('php://memory', 'rw');
} else {
$this->setContent($data);
}
}
/**
* Add an array of headers to the request.
*
* @phpstan-param array
$headers
* @param array $headers The headers to add.
* @return void
*/
protected function addHeaders(array $headers): void
{
foreach ($headers as $key => $val) {
$normalized = strtolower($key);
$this->headers[$key] = (array)$val;
$this->headerNames[$normalized] = $key;
}
}
/**
* Set the body/payload for the message.
*
* Array data will be serialized with {@link \Cake\Http\FormData},
* and the content-type will be set.
*
* @param array|string $content The body for the request.
* @return $this
*/
protected function setContent($content)
{
if (is_array($content)) {
$formData = new FormData();
$formData->addMany($content);
/** @phpstan-var array $headers */
$headers = ['Content-Type' => $formData->contentType()];
$this->addHeaders($headers);
$content = (string)$formData;
}
$stream = new Stream('php://memory', 'rw');
$stream->write($content);
$this->stream = $stream;
return $this;
}
}