__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
<?php

/**
 * Part of the Joomla Framework Http Package
 *
 * @copyright  Copyright (C) 2005 - 2021 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE
 */

namespace Joomla\Http;

use Joomla\Uri\Uri;
use Joomla\Uri\UriInterface;
use Psr\Http\Client\ClientInterface;
use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\ResponseInterface;

/**
 * HTTP client class.
 *
 * @since  1.0
 */
class Http implements ClientInterface
{
    /**
     * Options for the HTTP client.
     *
     * @var    array|\ArrayAccess
     * @since  1.0
     */
    protected $options;

    /**
     * The HTTP transport object to use in sending HTTP requests.
     *
     * @var    TransportInterface
     * @since  1.0
     */
    protected $transport;

    /**
     * Constructor.
     *
     * @param   array|\ArrayAccess   $options    Client options array. If the registry contains any headers.* elements,
     *                                           these will be added to the request headers.
     * @param   ?TransportInterface  $transport  The HTTP transport object.
     *
     * @since   1.0
     * @throws  \InvalidArgumentException
     */
    public function __construct($options = [], ?TransportInterface $transport = null)
    {
        if (!\is_array($options) && !($options instanceof \ArrayAccess)) {
            throw new \InvalidArgumentException(
                'The options param must be an array or implement the ArrayAccess interface.'
            );
        }

        $this->options = $options;

        if (!$transport) {
            $transport = (new HttpFactory())->getAvailableDriver($this->options);

            // Ensure the transport is a TransportInterface instance or bail out
            if (!($transport instanceof TransportInterface)) {
                throw new \InvalidArgumentException(sprintf('A valid %s object was not set.', TransportInterface::class));
            }
        }

        $this->transport = $transport;
    }

    /**
     * Get an option from the HTTP client.
     *
     * @param   string  $key      The name of the option to get.
     * @param   mixed   $default  The default value if the option is not set.
     *
     * @return  mixed  The option value.
     *
     * @since   1.0
     */
    public function getOption($key, $default = null)
    {
        return $this->options[$key] ?? $default;
    }

    /**
     * Set an option for the HTTP client.
     *
     * @param   string  $key    The name of the option to set.
     * @param   mixed   $value  The option value to set.
     *
     * @return  $this
     *
     * @since   1.0
     */
    public function setOption($key, $value)
    {
        $this->options[$key] = $value;

        return $this;
    }

    /**
     * Method to send the OPTIONS command to the server.
     *
     * @param   string|UriInterface  $url      The URI to the resource to request.
     * @param   array                $headers  An array of request headers to send with the request.
     * @param   integer              $timeout  Read timeout in seconds.
     *
     * @return  Response
     *
     * @since   1.0
     */
    public function options($url, array $headers = [], $timeout = null)
    {
        return $this->makeTransportRequest('OPTIONS', $url, null, $headers, $timeout);
    }

    /**
     * Method to send the HEAD command to the server.
     *
     * @param   string|UriInterface  $url      The URI to the resource to request.
     * @param   array                $headers  An array of request headers to send with the request.
     * @param   integer              $timeout  Read timeout in seconds.
     *
     * @return  Response
     *
     * @since   1.0
     */
    public function head($url, array $headers = [], $timeout = null)
    {
        return $this->makeTransportRequest('HEAD', $url, null, $headers, $timeout);
    }

    /**
     * Method to send the GET command to the server.
     *
     * @param   string|UriInterface  $url      The URI to the resource to request.
     * @param   array                $headers  An array of request headers to send with the request.
     * @param   integer              $timeout  Read timeout in seconds.
     *
     * @return  Response
     *
     * @since   1.0
     */
    public function get($url, array $headers = [], $timeout = null)
    {
        return $this->makeTransportRequest('GET', $url, null, $headers, $timeout);
    }

    /**
     * Method to send the POST command to the server.
     *
     * @param   string|UriInterface  $url      The URI to the resource to request.
     * @param   mixed                $data     Either an associative array or a string to be sent with the request.
     * @param   array                $headers  An array of request headers to send with the request.
     * @param   integer              $timeout  Read timeout in seconds.
     *
     * @return  Response
     *
     * @since   1.0
     */
    public function post($url, $data, array $headers = [], $timeout = null)
    {
        return $this->makeTransportRequest('POST', $url, $data, $headers, $timeout);
    }

    /**
     * Method to send the PUT command to the server.
     *
     * @param   string|UriInterface  $url      The URI to the resource to request.
     * @param   mixed                $data     Either an associative array or a string to be sent with the request.
     * @param   array                $headers  An array of request headers to send with the request.
     * @param   integer              $timeout  Read timeout in seconds.
     *
     * @return  Response
     *
     * @since   1.0
     */
    public function put($url, $data, array $headers = [], $timeout = null)
    {
        return $this->makeTransportRequest('PUT', $url, $data, $headers, $timeout);
    }

    /**
     * Method to send the DELETE command to the server.
     *
     * @param   string|UriInterface  $url      The URI to the resource to request.
     * @param   array                $headers  An array of request headers to send with the request.
     * @param   integer              $timeout  Read timeout in seconds.
     * @param   mixed                $data     Either an associative array or a string to be sent with the request.
     *
     * @return  Response
     *
     * @since   1.0
     */
    public function delete($url, array $headers = [], $timeout = null, $data = null)
    {
        return $this->makeTransportRequest('DELETE', $url, $data, $headers, $timeout);
    }

    /**
     * Method to send the TRACE command to the server.
     *
     * @param   string|UriInterface  $url      The URI to the resource to request.
     * @param   array                $headers  An array of request headers to send with the request.
     * @param   integer              $timeout  Read timeout in seconds.
     *
     * @return  Response
     *
     * @since   1.0
     */
    public function trace($url, array $headers = [], $timeout = null)
    {
        return $this->makeTransportRequest('TRACE', $url, null, $headers, $timeout);
    }

    /**
     * Method to send the PATCH command to the server.
     *
     * @param   string|UriInterface  $url      The URI to the resource to request.
     * @param   mixed                $data     Either an associative array or a string to be sent with the request.
     * @param   array                $headers  An array of request headers to send with the request.
     * @param   integer              $timeout  Read timeout in seconds.
     *
     * @return  Response
     *
     * @since   1.0
     */
    public function patch($url, $data, array $headers = [], $timeout = null)
    {
        return $this->makeTransportRequest('PATCH', $url, $data, $headers, $timeout);
    }

    /**
     * Sends a PSR-7 request and returns a PSR-7 response.
     *
     * @param   RequestInterface  $request  The PSR-7 request object.
     *
     * @return  ResponseInterface|Response
     *
     * @since   2.0.0
     */
    public function sendRequest(RequestInterface $request): ResponseInterface
    {
        $data = $request->getBody()->getContents();

        return $this->makeTransportRequest(
            $request->getMethod(),
            new Uri((string) $request->getUri()),
            empty($data) ? null : $data,
            $request->getHeaders()
        );
    }

    /**
     * Send a request to the server and return a Response object with the response.
     *
     * @param   string               $method   The HTTP method for sending the request.
     * @param   string|UriInterface  $url      The URI to the resource to request.
     * @param   mixed                $data     Either an associative array or a string to be sent with the request.
     * @param   array                $headers  An array of request headers to send with the request.
     * @param   integer              $timeout  Read timeout in seconds.
     *
     * @return  Response
     *
     * @since   1.0
     * @throws  \InvalidArgumentException
     */
    protected function makeTransportRequest($method, $url, $data = null, array $headers = [], $timeout = null)
    {
        // Look for headers set in the options.
        if (isset($this->options['headers'])) {
            $temp = (array) $this->options['headers'];

            foreach ($temp as $key => $val) {
                if (!isset($headers[$key])) {
                    $headers[$key] = $val;
                }
            }
        }

        // Look for timeout set in the options.
        if ($timeout === null && isset($this->options['timeout'])) {
            $timeout = $this->options['timeout'];
        }

        $userAgent = isset($this->options['userAgent']) ? $this->options['userAgent'] : null;

        // Convert to a Uri object if we were given a string
        if (\is_string($url)) {
            $url = new Uri($url);
        } elseif (!($url instanceof UriInterface)) {
            throw new \InvalidArgumentException(
                sprintf(
                    'A string or %s object must be provided, a "%s" was provided.',
                    UriInterface::class,
                    \gettype($url)
                )
            );
        }

        return $this->transport->request($method, $url, $data, $headers, $timeout, $userAgent);
    }
}

Filemanager

Name Type Size Permission Actions
Exception Folder 0775
Transport Folder 0775
AbstractTransport.php File 2.3 KB 0664
Http.php File 10.07 KB 0664
HttpFactory.php File 3.59 KB 0664
Response.php File 1.58 KB 0664
TransportInterface.php File 1.38 KB 0664
Filemanager