Example #1
0
 /**
  * Hydrates the cURL instance with the data from the specified request.
  * @param \BluePsyduck\MultiCurl\Wrapper\Curl $curl
  * @param \BluePsyduck\MultiCurl\Entity\Request $request
  * @return $this Implementing fluent interface.
  */
 protected function hydrateCurlFromRequest(Curl $curl, Request $request)
 {
     if ($request->getMethod() === Request::METHOD_POST) {
         $curl->setOption(CURLOPT_POST, true)->setOption(CURLOPT_POSTFIELDS, $request->getRequestData());
     } else {
         $curl->setOption(CURLOPT_HTTPGET, true);
     }
     $curl->setOption(CURLOPT_URL, $request->getUrl())->setOption(CURLOPT_RETURNTRANSFER, true)->setOption(CURLOPT_HEADER, true)->setOption(CURLOPT_FOLLOWLOCATION, true);
     if ($request->getTimeout() > 0) {
         $curl->setOption(CURLOPT_TIMEOUT, $request->getTimeout());
     }
     if ($request->getHeaders()) {
         $curl->setOption(CURLOPT_HTTPHEADER, $request->getHeaders());
     }
     if ($request->getBasicAuthUsername() && $request->getBasicAuthPassword()) {
         $credentials = $request->getBasicAuthUsername() . ':' . $request->getBasicAuthPassword();
         $curl->setOption(CURLOPT_USERPWD, $credentials);
     }
     return $this;
 }