public static function make($uri, $data = null, array $queryParameters = [], array $headers = [], $method = null, $contentType = null, $contentCharset = null)
    {
        if (is_null($method)) {
            $method = is_null($data) ? static::METHOD_GET : static::METHOD_POST;
        }
        $uri = UriFactory::make($uri, $queryParameters);
        $stream = new Stream('php://memory', 'r+');
        $request = new Request($uri, $method, $stream, $headers);

        $contentType = $contentType ?: $request->getHeaderLine('Content-Type');
        $contentType = $contentType ?: static::DEFAULT_CONTENT_TYPE;
        $contentTypeParts = explode(';', $contentType);
        $mimeType = trim(array_shift($contentTypeParts));
        if (is_null($data)) {
            $body = null;
        } elseif (is_string($data)) {
            $body = $data;
        } elseif (is_array($data)) {
            $body = static::format($data, $mimeType);
        } else {
            throw new InvalidArgumentException('Data should be either null, string or array');
        }
        if ( ! is_null($body)) {
            $contentCharset = $contentCharset ?: static::extractCharset($contentTypeParts);
            $contentCharset = $contentCharset ?: static::DEFAULT_CONTENT_CHARSET;
            $contentTypeReassembled = $mimeType.'; charset='.$contentCharset;
            $request = $request->withHeader('Content-Type', $contentTypeReassembled);

            $request->getBody()->write($body);
        }
        return $request;
    }
public static function make($uri, $data = null, array $queryParameters = [], array $headers = [], $method = null, $contentType = null, $contentCharset = null)
    {
        if (is_null($method)) {
            $method = is_null($data) ? static::METHOD_GET : static::METHOD_POST;
        }
        $uri = UriFactory::make($uri, $queryParameters);
        $stream = new Stream('php://memory', 'r+');
        $request = new Request($uri, $method, $stream, $headers);

        $contentType = $contentType ?: $request->getHeaderLine('Content-Type');
        $contentType = $contentType ?: static::DEFAULT_CONTENT_TYPE;
        $contentTypeParts = explode(';', $contentType);
        $mimeType = trim(array_shift($contentTypeParts));
        if (is_null($data)) {
            $body = null;
        } elseif (is_string($data)) {
            $body = $data;
        } elseif (is_array($data)) {
            $body = static::format($data, $mimeType);
        } else {
            throw new InvalidArgumentException('Data should be either null, string or array');
        }
        if ( ! is_null($body)) {
            $contentCharset = $contentCharset ?: static::extractCharset($contentTypeParts);
            $contentCharset = $contentCharset ?: static::DEFAULT_CONTENT_CHARSET;
            $contentTypeReassembled = $mimeType.'; charset='.$contentCharset;
            $request = $request->withHeader('Content-Type', $contentTypeReassembled);

            $request->getBody()->write($body);
        }
        return $request;
    }
public static function make ( $ uri , $ data = null , array $ queryParameters = [ ] , array $ headers = [ ] , $ method = null , $ contentType = null , $ contentCharset = null ) { if ( is_null ( $ method ) ) { $ method = is_null ( $ data ) ? static :: METHOD_GET : static :: METHOD_POST ; } $ uri = UriFactory :: make ( $ uri , $ queryParameters ) ; $ stream = new Stream ( 'php://memory' , 'r+' ) ; $ request = new Request ( $ uri , $ method , $ stream , $ headers ) ; $ contentType = $ contentType ? : $ request -> getHeaderLine ( 'Content-Type' ) ; $ contentType = $ contentType ? : static :: DEFAULT_CONTENT_TYPE ; $ contentTypeParts = explode ( ';' , $ contentType ) ; $ mimeType = trim ( array_shift ( $ contentTypeParts ) ) ; if ( is_null ( $ data ) ) { $ body = null ; } elseif ( is_string ( $ data ) ) { $ body = $ data ; } elseif ( is_array ( $ data ) ) { $ body = static :: format ( $ data , $ mimeType ) ; } else { throw new InvalidArgumentException ( 'Data should be either null, string or array' ) ; } if ( ! is_null ( $ body ) ) { $ contentCharset = $ contentCharset ? : static :: extractCharset ( $ contentTypeParts ) ; $ contentCharset = $ contentCharset ? : static :: DEFAULT_CONTENT_CHARSET ; $ contentTypeReassembled = $ mimeType . '; charset=' . $ contentCharset ; $ request = $ request -> withHeader ( 'Content-Type' , $ contentTypeReassembled ) ; $ request -> getBody ( ) -> write ( $ body ) ; } return $ request ; }
Makes PSR-7 compliant Request object from provided parameters

@param UriInterface|string $uri
@param null|string|array $data
@param array $queryParameters
@param array $headers
@param null|string $method
@param null|string $contentType
@param null|string $contentCharset
@return RequestInterface
@throws InvalidArgumentException
Makes PSR - 7 compliant Request object from provided parameters