Example #1
0
 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());
 }
Example #2
0
 /**
  * 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;
 }
Example #3
0
 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));
 }