Example #1
0
 /**
  *
  * @param \MailQ\Request $request
  * @return \MailQ\Response
  */
 public function sendRequest(Request $request)
 {
     $ch = curl_init();
     $curlHeaders = $this->createCurlHeaders(array_merge($request->getHeaders(), $this->createDefaultHeaders()));
     $url = $this->baseUrl . '/companies/' . $request->getPath();
     if ($request->hasParameters()) {
         $url .= '?' . http_build_query($request->getParameters());
     }
     curl_setopt($ch, CURLOPT_URL, $url);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($ch, CURLOPT_HEADER, false);
     curl_setopt($ch, CURLOPT_HEADERFUNCTION, [$this, 'storeHeader']);
     curl_setopt($ch, CURLOPT_HTTPHEADER, $curlHeaders);
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $this->connectionTimeout);
     curl_setopt($ch, CURLOPT_TIMEOUT, $this->timeout);
     if ($request->hasContent()) {
         curl_setopt($ch, CURLOPT_POSTFIELDS, $request->getContent());
     }
     if ($request->isPost()) {
         curl_setopt($ch, CURLOPT_POST, true);
     } elseif ($request->isDelete()) {
         curl_setopt($ch, CURLOPT_CUSTOMREQUEST, Request::HTTP_METHOD_DELETE);
     } elseif ($request->isPut()) {
         curl_setopt($ch, CURLOPT_CUSTOMREQUEST, Request::HTTP_METHOD_PUT);
     }
     $responseData = curl_exec($ch);
     $response = $this->createResponse($ch, $responseData);
     curl_close($ch);
     return $response;
 }