예제 #1
0
 public function sendRequest()
 {
     // new Request
     $request = new Request($this->requestType, $this->resource, $this->host);
     // add headers
     $request->addHeaders($this->headers);
     // add body
     $request->setContent($this->body);
     // prepare client
     $response = new Response();
     $curl = new Curl();
     $curl->send($request, $response);
     $this->request = $request;
     $this->response = $response;
 }
예제 #2
0
 /**
  * @param Request                $curlRequest
  * @param ConfigurationInterface $configuration
  */
 private function addHeaders(Request $curlRequest, ConfigurationInterface $configuration)
 {
     $authorization = sprintf('Basic %s', base64_encode(sprintf('%s:%s', $configuration->getCredentials()->getMerchantPosId(), $configuration->getCredentials()->getPrivateKey())));
     $curlRequest->addHeaders(['Authorization' => $authorization, 'Content-Type' => self::CONTENT_TYPE, 'Accept' => self::CONTENT_TYPE]);
 }
예제 #3
0
 /**
  * @return HttpRequest
  */
 public function createHttpRequest($method, $uri, $contentType = '', $acceptType = '')
 {
     $headers = array_merge($method === 'POST' && $uri === '/api/ezp/v2/user/sessions' ? [] : $this->headers, ['Content-Type: ' . $this->generateMediaTypeString($contentType), 'Accept: ' . $this->generateMediaTypeString($acceptType)]);
     switch ($method) {
         case 'PUBLISH':
             $method = 'POST';
             $headers[] = 'X-HTTP-Method-Override: PUBLISH';
             break;
         case 'MOVE':
             $method = 'POST';
             $headers[] = 'X-HTTP-Method-Override: MOVE';
             break;
         case 'PATCH':
             $method = 'PATCH';
             $headers[] = 'X-HTTP-Method-Override: PATCH';
             break;
         case 'COPY':
             $method = 'POST';
             $headers[] = 'X-HTTP-Method-Override: COPY';
             break;
     }
     $request = new HttpRequest($method, $uri, $this->httpHost);
     $request->addHeaders($headers);
     return $request;
 }