/** * Downloads data from the given URL via a POST request. If a destination path is given, the downloaded data * will be stored in the given path and returned otherwise. * * Make sure to call {@link authenticate()} to download paid plugins. * * @param string $url An absolute URL to the marketplace including domain. * @param null|string $destinationPath * @param null|int $timeout Defaults to 60 seconds see {@link self::HTTP_REQUEST_METHOD} * @return bool|string Returns the downloaded data or true if a destination path was given. * @throws \Exception */ public function download($url, $destinationPath = null, $timeout = null) { $method = Http::getTransportMethod(); if (!isset($timeout)) { $timeout = static::HTTP_REQUEST_TIMEOUT; } $post = null; if ($this->accessToken) { $post = array('access_token' => $this->accessToken); } $file = Http::ensureDestinationDirectoryExists($destinationPath); $response = Http::sendHttpRequestBy($method, $url, $timeout, $userAgent = null, $destinationPath, $file, $followDepth = 0, $acceptLanguage = false, $acceptInvalidSslCertificate = false, $byteRange = false, $getExtendedInfo = false, $httpMethod = 'POST', $httpUsername = null, $httpPassword = null, $post); return $response; }