private function createHeaders(RequestInterface $request, array $curlOptions): array
    {
        $curlHeaders = [];
        $headers = $request->getHeaders();
        foreach ($headers as $name => $values) {
            $header = strtolower($name);
            if ('expect' === $header) {
                // curl-client does not support "Expect-Continue", so dropping "expect" headers
                continue;
            }
            if ('content-length' === $header) {
                if (array_key_exists(CURLOPT_POSTFIELDS, $curlOptions)) {
                    // Small body content length can be calculated here.
                    $values = [strlen($curlOptions[CURLOPT_POSTFIELDS])];
                } elseif (!array_key_exists(CURLOPT_READFUNCTION, $curlOptions)) {
                    // Else if there is no body, forcing "Content-length" to 0
                    $values = [0];
                }
            }
            foreach ($values as $value) {
                $curlHeaders[] = $name . ': ' . $value;
            }
        }
        /*
         * curl-client does not support "Expect-Continue", but cURL adds "Expect" header by default.
         * We can not suppress it, but we can set it to empty.
         */
        $curlHeaders[] = 'Expect:';

        return $curlHeaders;
    }
private function createHeaders(RequestInterface $request, array $curlOptions): array
    {
        $curlHeaders = [];
        $headers = $request->getHeaders();
        foreach ($headers as $name => $values) {
            $header = strtolower($name);
            if ('expect' === $header) {
                // curl-client does not support "Expect-Continue", so dropping "expect" headers
                continue;
            }
            if ('content-length' === $header) {
                if (array_key_exists(CURLOPT_POSTFIELDS, $curlOptions)) {
                    // Small body content length can be calculated here.
                    $values = [strlen($curlOptions[CURLOPT_POSTFIELDS])];
                } elseif (!array_key_exists(CURLOPT_READFUNCTION, $curlOptions)) {
                    // Else if there is no body, forcing "Content-length" to 0
                    $values = [0];
                }
            }
            foreach ($values as $value) {
                $curlHeaders[] = $name . ': ' . $value;
            }
        }
        /*
         * curl-client does not support "Expect-Continue", but cURL adds "Expect" header by default.
         * We can not suppress it, but we can set it to empty.
         */
        $curlHeaders[] = 'Expect:';

        return $curlHeaders;
    }
private function createHeaders ( RequestInterface $ request , array $ curlOptions ) : array { $ curlHeaders = [ ] ; $ headers = $ request -> getHeaders ( ) ; foreach ( $ headers as $ name => $ values ) { $ header = strtolower ( $ name ) ; if ( 'expect' === $ header ) { // curl-client does not support "Expect-Continue", so dropping "expect" headers continue ; } if ( 'content-length' === $ header ) { if ( array_key_exists ( CURLOPT_POSTFIELDS , $ curlOptions ) ) { // Small body content length can be calculated here. $ values = [ strlen ( $ curlOptions [ CURLOPT_POSTFIELDS ] ) ] ; } elseif ( ! array_key_exists ( CURLOPT_READFUNCTION , $ curlOptions ) ) { // Else if there is no body, forcing "Content-length" to 0 $ values = [ 0 ] ; } } foreach ( $ values as $ value ) { $ curlHeaders [ ] = $ name . ': ' . $ value ; } } /*
         * curl-client does not support "Expect-Continue", but cURL adds "Expect" header by default.
         * We can not suppress it, but we can set it to empty.
         */ $ curlHeaders [ ] = 'Expect:' ; return $ curlHeaders ; }
Create headers array for CURLOPT_HTTPHEADER.

@param RequestInterface $request     Request on which to create headers.
@param array            $curlOptions Options created by prepareRequestOptions().

@return string[]
Create headers array for CURLOPT_HTTPHEADER .