public function queryProvider($endpoint, $url = null, $format = 'json', array $args = [])
    {
        if ($url !== null) {
            if ($format === null) {
                throw new \InvalidArgumentException('The request format must be defined in manual mode.');
            }

            $args['url'] = (string) $url;
            $args['format'] = (string) $format;
            $concat = '?';
        } else {
            $concat = parse_url($endpoint, PHP_URL_QUERY) != '' ? '&' : '?';
        }

        $query = http_build_query(array_replace($this->args, $args));

        return $this->http->get($endpoint.$concat.$query);
    }