Server IP : 108.163.255.210 / Your IP : 3.145.106.176 Web Server : Apache System : Linux blossom.urlnameserver.com 3.10.0-1160.80.1.el7.x86_64 #1 SMP Tue Nov 8 15:48:59 UTC 2022 x86_64 User : ( 1172) PHP Version : 7.2.34 Disable Function : eval,escapeshellarg,proc_close,proc_get_status,proc_nice,proc_open,symlink,system,pcntl_exec,getrusage,chown,chgp,closelog,openlog,syslog,define_syslog_variables,php_ini_loaded_file,getservbyname,getservbyport,posix_getgid,posix_getgrgid,proc_terminate,pfsockopen,apache_child_terminate,posix_mkfifo,posix_setpgid,posix_setuid,hypot,pg_host,pos,posix_access,posix_getcwd,posix_getservbyname,myshellexec,getpid,posix_getsid,posix_isatty,posix_kill,posix_mknod,posix_setgid,posix_setsid,posix_setuid,posix_times,posix_uname,ps_fill,posix_getpwuid,global,ini_restore,zip_open,zip_read,rar_open,bzopen,bzread,bzwrite,apache_get_modules,apache_get_version,phpversionphpinfo,php_ini_scanned_files,get_current_user,disk_total_space,diskfreespace,leak,imap_list,hypo,filedump,safe_mode,getmygid,apache_getenv,apache_setenv,bzread,bzwrite,bzopen,phpini,higlight_file,dos_conv,get_cwd,er_log,cmd,e_name,vdir,get_dir,only_read,ftok,ftpexec,posix_getpwnam,mysql_list_dbs,disk_free_space,session_save_path,confirm_phpdoc_compiled,zip_entry_rea,php_u,psockopen,crack_opendict,crack_getlastmessage,crack_closedict,crack_check,fpassthru,posix_get_last_error,posix_getlogin,posix_getgroups,posix_strerror,posix_getrlimit,posix_getpgrp,posix_getgrnam,pos,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/unilinki/public_html/csrability.in/vendor/symfony/browser-kit/ |
Upload File : |
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\BrowserKit; use Symfony\Component\HttpClient\HttpClient; use Symfony\Component\Mime\Part\AbstractPart; use Symfony\Component\Mime\Part\DataPart; use Symfony\Component\Mime\Part\Multipart\FormDataPart; use Symfony\Component\Mime\Part\TextPart; use Symfony\Contracts\HttpClient\HttpClientInterface; /** * An implementation of a browser using the HttpClient component * to make real HTTP requests. * * @author Fabien Potencier <fabien@symfony.com> */ class HttpBrowser extends AbstractBrowser { private $client; public function __construct(HttpClientInterface $client = null, History $history = null, CookieJar $cookieJar = null) { if (!$client && !class_exists(HttpClient::class)) { throw new \LogicException(sprintf('You cannot use "%s" as the HttpClient component is not installed. Try running "composer require symfony/http-client".', __CLASS__)); } $this->client = $client ?? HttpClient::create(); parent::__construct([], $history, $cookieJar); } protected function doRequest($request) { $headers = $this->getHeaders($request); [$body, $extraHeaders] = $this->getBodyAndExtraHeaders($request); $response = $this->client->request($request->getMethod(), $request->getUri(), [ 'headers' => array_merge($headers, $extraHeaders), 'body' => $body, 'max_redirects' => 0, ]); return new Response($response->getContent(false), $response->getStatusCode(), $response->getHeaders(false)); } /** * @return array [$body, $headers] */ private function getBodyAndExtraHeaders(Request $request): array { if (\in_array($request->getMethod(), ['GET', 'HEAD'])) { return ['', []]; } if (!class_exists(AbstractPart::class)) { throw new \LogicException('You cannot pass non-empty bodies as the Mime component is not installed. Try running "composer require symfony/mime".'); } if (null !== $content = $request->getContent()) { $part = new TextPart($content, 'utf-8', 'plain', '8bit'); return [$part->bodyToString(), $part->getPreparedHeaders()->toArray()]; } $fields = $request->getParameters(); $hasFile = false; foreach ($request->getFiles() as $name => $file) { if (!isset($file['tmp_name'])) { continue; } $hasFile = true; $fields[$name] = DataPart::fromPath($file['tmp_name'], $file['name']); } if ($hasFile) { $part = new FormDataPart($fields); return [$part->bodyToIterable(), $part->getPreparedHeaders()->toArray()]; } if (empty($fields)) { return ['', []]; } return [http_build_query($fields, '', '&', PHP_QUERY_RFC1738), ['Content-Type' => 'application/x-www-form-urlencoded']]; } private function getHeaders(Request $request): array { $headers = []; foreach ($request->getServer() as $key => $value) { $key = strtolower(str_replace('_', '-', $key)); $contentHeaders = ['content-length' => true, 'content-md5' => true, 'content-type' => true]; if (0 === strpos($key, 'http-')) { $headers[substr($key, 5)] = $value; } elseif (isset($contentHeaders[$key])) { // CONTENT_* are not prefixed with HTTP_ $headers[$key] = $value; } } $cookies = []; foreach ($this->getCookieJar()->allRawValues($request->getUri()) as $name => $value) { $cookies[] = $name.'='.$value; } if ($cookies) { $headers['cookie'] = implode('; ', $cookies); } return $headers; } }