/**
* 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;
}