public function testAddHeader() { $headers = array('User-Agent: My Agent'); $this->request->setHeaders($headers); $this->request->addHeader('Cache-Control: no-cache'); $headers[] = 'Cache-Control: no-cache'; $this->assertEquals($headers, $this->request->getHeaders()); }
/** * Create a stream context for a request * * @param Request $request * @param Endpoint $endpoint * @return resource */ public function createContext($request, $endpoint) { $method = $request->getMethod(); $context = stream_context_create(array('http' => array('method' => $method, 'timeout' => $endpoint->getTimeout()))); if ($method == Request::METHOD_POST) { if ($request->getFileUpload()) { stream_context_set_option($context, 'http', 'content', file_get_contents($request->getFileUpload())); $request->addHeader('Content-Type: multipart/form-data'); } else { $data = $request->getRawData(); if (null !== $data) { stream_context_set_option($context, 'http', 'content', $data); $request->addHeader('Content-Type: text/xml; charset=UTF-8'); } } } // Try endpoint authentication first, fallback to request for backwards compatibility $authData = $endpoint->getAuthentication(); if (empty($authData['username'])) { $authData = $request->getAuthentication(); } if (!empty($authData['username']) && !empty($authData['password'])) { $request->addHeader('Authorization: Basic ' . base64_encode($authData['username'] . ':' . $authData['password'])); } $headers = $request->getHeaders(); if (count($headers) > 0) { stream_context_set_option($context, 'http', 'header', implode("\r\n", $headers)); } return $context; }
public function testCreateContextWithHeaders() { $timeout = 13; $method = Request::METHOD_HEAD; $header1 = 'Content-Type: text/xml; charset=UTF-8'; $header2 = 'X-MyHeader: dummyvalue'; $request = new Request(); $request->setMethod($method); $request->addHeader($header1); $request->addHeader($header2); $endpoint = new Endpoint(); $endpoint->setTimeout($timeout); $context = $this->adapter->createContext($request, $endpoint); $this->assertEquals(array('http' => array('method' => $method, 'timeout' => $timeout, 'header' => $header1 . "\r\n" . $header2)), stream_context_get_options($context)); }