private function CurlFactory::applyBody in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php \GuzzleHttp\Handler\CurlFactory::applyBody()
1 call to CurlFactory::applyBody()
- CurlFactory::applyMethod in vendor/
guzzlehttp/ guzzle/ src/ Handler/ CurlFactory.php
File
- vendor/
guzzlehttp/ guzzle/ src/ Handler/ CurlFactory.php, line 246
Class
- CurlFactory
- Creates curl resources from a request
Namespace
GuzzleHttp\HandlerCode
private function applyBody(RequestInterface $request, array $options, array &$conf) {
$size = $request
->hasHeader('Content-Length') ? (int) $request
->getHeaderLine('Content-Length') : null;
// Send the body as a string if the size is less than 1MB OR if the
// [curl][body_as_string] request value is set.
if ($size !== null && $size < 1000000 || !empty($options['_body_as_string'])) {
$conf[CURLOPT_POSTFIELDS] = (string) $request
->getBody();
// Don't duplicate the Content-Length header
$this
->removeHeader('Content-Length', $conf);
$this
->removeHeader('Transfer-Encoding', $conf);
}
else {
$conf[CURLOPT_UPLOAD] = true;
if ($size !== null) {
$conf[CURLOPT_INFILESIZE] = $size;
$this
->removeHeader('Content-Length', $conf);
}
$body = $request
->getBody();
$conf[CURLOPT_READFUNCTION] = function ($ch, $fd, $length) use ($body) {
return $body
->read($length);
};
}
// If the Expect header is not present, prevent curl from adding it
if (!$request
->hasHeader('Expect')) {
$conf[CURLOPT_HTTPHEADER][] = 'Expect:';
}
// cURL sometimes adds a content-type by default. Prevent this.
if (!$request
->hasHeader('Content-Type')) {
$conf[CURLOPT_HTTPHEADER][] = 'Content-Type:';
}
}