Sets single server parameter.
public setServerParameter ( string $key, string $value ) | ||
$key | string | A key of the parameter |
$value | string | A value of the parameter |
protected function execute($method = 'GET', $url, $parameters = array(), $files = array()) { foreach ($this->headers as $header => $val) { $header = str_replace('-', '_', strtoupper($header)); $this->client->setServerParameter("HTTP_{$header}", $val); # Issue #827 - symfony foundation requires 'CONTENT_TYPE' without HTTP_ if ($this->isFunctional and $header == 'CONTENT_TYPE') { $this->client->setServerParameter($header, $val); } } // allow full url to be requested $url = (strpos($url, '://') === false ? $this->config['url'] : '') . $url; $parameters = $this->encodeApplicationJson($method, $parameters); if (is_array($parameters) || $method == 'GET') { if (!empty($parameters) && $method == 'GET') { $url .= '?' . http_build_query($parameters); } if ($method == 'GET') { $this->debugSection("Request", "{$method} {$url}"); } else { $this->debugSection("Request", "{$method} {$url} " . json_encode($parameters)); } $this->client->request($method, $url, $parameters, $files); } else { $this->debugSection("Request", "{$method} {$url} " . $parameters); $this->client->request($method, $url, array(), $files, array(), $parameters); } $this->response = $this->client->getInternalResponse()->getContent(); $this->debugSection("Response", $this->response); if (count($this->client->getInternalRequest()->getCookies())) { $this->debugSection('Cookies', $this->client->getInternalRequest()->getCookies()); } $this->debugSection("Headers", $this->client->getInternalResponse()->getHeaders()); $this->debugSection("Status", $this->client->getInternalResponse()->getStatus()); }
protected function execute($method = 'GET', $url, $parameters = array(), $files = array()) { foreach ($this->headers as $header => $val) { $this->client->setServerParameter("HTTP_{$header}", $val); } // allow full url to be requested $url = (strpos($url, '://') === false ? $this->config['url'] : '') . $url; if (is_array($parameters) || $parameters instanceof \ArrayAccess) { $parameters = $this->scalarizeArray($parameters); if (array_key_exists('Content-Type', $this->headers) && $this->headers['Content-Type'] === 'application/json' && $method != 'GET') { $parameters = json_encode($parameters); } } if (is_array($parameters) || $method == 'GET') { if ($method == 'GET' && !empty($parameters)) { $url .= '?' . http_build_query($parameters); $this->debugSection("Request", "{$method} {$url}"); } else { $this->debugSection("Request", "{$method} {$url}?" . http_build_query($parameters)); } $this->client->request($method, $url, $parameters, $files); } else { $this->debugSection("Request", "{$method} {$url} " . $parameters); $this->client->request($method, $url, array(), $files, array(), $parameters); } $this->response = $this->client->getResponse()->getContent(); $this->debugSection("Response", $this->response); }
/** * Initializes BrowserKit driver. * * @param Client $client BrowserKit client instance * @param string|null $baseUrl Base URL for HttpKernel clients */ public function __construct(Client $client, $baseUrl = null) { $this->client = $client; $this->client->followRedirects(true); if ($baseUrl !== null && $client instanceof HttpKernelClient) { $client->setServerParameter('SCRIPT_FILENAME', parse_url($baseUrl, PHP_URL_PATH)); } }
/** * Adds HTTP authentication via username/password. * * @param $username * @param $password * @part json * @part xml */ public function amHttpAuthenticated($username, $password) { if ($this->isFunctional) { $this->client->setServerParameter('PHP_AUTH_USER', $username); $this->client->setServerParameter('PHP_AUTH_PW', $password); } else { $this->client->setAuth($username, $password); } }
protected function execute($method = 'GET', $url, $parameters = [], $files = []) { $this->debugSection("Request headers", $this->headers); foreach ($this->headers as $header => $val) { $header = str_replace('-', '_', strtoupper($header)); $this->client->setServerParameter("HTTP_{$header}", $val); // Issue #1650 - Symfony BrowserKit changes HOST header to request URL if ($header === 'HOST') { $this->client->setServerParameter("HTTP_ HOST", $val); } // Issue #827 - symfony foundation requires 'CONTENT_TYPE' without HTTP_ if ($this->isFunctional && $header === 'CONTENT_TYPE') { $this->client->setServerParameter($header, $val); } } // allow full url to be requested if (strpos($url, '://') === false) { $url = $this->config['url'] . $url; } $this->params = $parameters; $parameters = $this->encodeApplicationJson($method, $parameters); if (is_array($parameters) || $method === 'GET') { if (!empty($parameters) && $method === 'GET') { $url .= '?' . http_build_query($parameters); } if ($method == 'GET') { $this->debugSection("Request", "{$method} {$url}"); } else { $this->debugSection("Request", "{$method} {$url} " . json_encode($parameters)); } $this->client->request($method, $url, $parameters, $files); } else { $requestData = $parameters; if (!ctype_print($requestData) && false === mb_detect_encoding($requestData, mb_detect_order(), true)) { // if the request data has non-printable bytes and it is not a valid unicode string, reformat the // display string to signify the presence of request data $requestData = '[binary-data length:' . strlen($requestData) . ' md5:' . md5($requestData) . ']'; } $this->debugSection("Request", "{$method} {$url} " . $requestData); $this->client->request($method, $url, [], $files, [], $parameters); } $this->response = (string) $this->connectionModule->_getResponseContent(); $this->debugSection("Response", $this->response); if (count($this->client->getInternalRequest()->getCookies())) { $this->debugSection('Cookies', $this->client->getInternalRequest()->getCookies()); } $this->debugSection("Headers", $this->client->getInternalResponse()->getHeaders()); $this->debugSection("Status", $this->client->getInternalResponse()->getStatus()); }
protected function processInternalRequest($action, $body) { ob_start(); try { $this->client->setServerParameter('HTTP_HOST', 'localhost'); $this->processRequest($action, $body); } catch (\ErrorException $e) { // Zend_Soap outputs warning as an exception if (strpos($e->getMessage(), 'Warning: Cannot modify header information') === false) { ob_end_clean(); throw $e; } } $response = ob_get_contents(); ob_end_clean(); return $response; }
/** * Sends a XMLRPC method call to remote XMLRPC-server. * * @param string $methodName * @param array $parameters */ public function sendXMLRPCMethodCall($methodName, $parameters = array()) { if (!array_key_exists('Content-Type', $this->headers)) { $this->headers['Content-Type'] = 'text/xml'; } foreach ($this->headers as $header => $val) { $this->client->setServerParameter("HTTP_{$header}", $val); } $url = $this->config['url']; if (is_array($parameters)) { $parameters = $this->scalarizeArray($parameters); } $requestBody = xmlrpc_encode_request($methodName, array_values($parameters)); $this->debugSection('Request', $url . PHP_EOL . $requestBody); $this->client->request('POST', $url, array(), array(), array(), $requestBody); $this->response = $this->client->getInternalResponse()->getContent(); $this->debugSection('Response', $this->response); }
protected function execute($method = 'GET', $url, $parameters = [], $files = []) { $this->debugSection("Request headers", $this->headers); if ($parameters instanceof \JsonSerializable) { $parameters = $parameters->jsonSerialize(); } foreach ($this->headers as $header => $val) { $header = str_replace('-', '_', strtoupper($header)); $this->client->setServerParameter("HTTP_{$header}", $val); // Issue #1650 - Symfony BrowserKit changes HOST header to request URL if (strtolower($header) == 'host') { $this->client->setServerParameter("HTTP_ HOST", $val); } // Issue #827 - symfony foundation requires 'CONTENT_TYPE' without HTTP_ if ($this->isFunctional and $header == 'CONTENT_TYPE') { $this->client->setServerParameter($header, $val); } } // allow full url to be requested $url = (strpos($url, '://') === false ? $this->config['url'] : '') . $url; $this->params = $parameters; $parameters = $this->encodeApplicationJson($method, $parameters); if (is_array($parameters) || $method == 'GET') { if (!empty($parameters) && $method == 'GET') { $url .= '?' . http_build_query($parameters); } if ($method == 'GET') { $this->debugSection("Request", "{$method} {$url}"); } else { $this->debugSection("Request", "{$method} {$url} " . json_encode($parameters)); } $this->client->request($method, $url, $parameters, $files); } else { $this->debugSection("Request", "{$method} {$url} " . $parameters); $this->client->request($method, $url, [], $files, [], $parameters); } $this->response = (string) $this->client->getInternalResponse()->getContent(); $this->debugSection("Response", $this->response); if (count($this->client->getInternalRequest()->getCookies())) { $this->debugSection('Cookies', $this->client->getInternalRequest()->getCookies()); } $this->debugSection("Headers", $this->client->getInternalResponse()->getHeaders()); $this->debugSection("Status", $this->client->getInternalResponse()->getStatus()); }