diff --git a/apps/files_sharing/ajax/external.php b/apps/files_sharing/ajax/external.php
index 7bef0c3197a66287f2d2967d942d5ea1d8a4f368..d26a64d3aec70b86eb4ee0c25bf9a2b68127f66d 100644
--- a/apps/files_sharing/ajax/external.php
+++ b/apps/files_sharing/ajax/external.php
@@ -56,71 +56,76 @@ $externalManager = new \OCA\Files_Sharing\External\Manager(
 );
 
 // check for ssl cert
-if (substr($remote, 0, 5) === 'https' and !OC_Util::getUrlContent($remote)) {
-	\OCP\JSON::error(array('data' => array('message' => $l->t('Invalid or untrusted SSL certificate'))));
-	exit;
-} else {
-	$mount = $externalManager->addShare($remote, $token, $password, $name, $owner, true);
+if (substr($remote, 0, 5) === 'https') {
+	try {
+		\OC::$server->getHTTPClientService()->newClient()->get($remote)->getBody();
+	} catch (\Exception $e) {
+		\OCP\JSON::error(array('data' => array('message' => $l->t('Invalid or untrusted SSL certificate'))));
+		exit;
+	}
+}
+
+$mount = $externalManager->addShare($remote, $token, $password, $name, $owner, true);
 
-	/**
-	 * @var \OCA\Files_Sharing\External\Storage $storage
-	 */
-	$storage = $mount->getStorage();
+/**
+ * @var \OCA\Files_Sharing\External\Storage $storage
+ */
+$storage = $mount->getStorage();
+try {
+	// check if storage exists
+	$storage->checkStorageAvailability();
+} catch (\OCP\Files\StorageInvalidException $e) {
+	// note: checkStorageAvailability will already remove the invalid share
+	\OCP\Util::writeLog(
+		'files_sharing',
+		'Invalid remote storage: ' . get_class($e) . ': ' . $e->getMessage(),
+		\OCP\Util::DEBUG
+	);
+	\OCP\JSON::error(
+		array(
+			'data' => array(
+				'message' => $l->t('Could not authenticate to remote share, password might be wrong')
+			)
+		)
+	);
+	exit();
+} catch (\Exception $e) {
+	\OCP\Util::writeLog(
+		'files_sharing',
+		'Invalid remote storage: ' . get_class($e) . ': ' . $e->getMessage(),
+		\OCP\Util::DEBUG
+	);
+	$externalManager->removeShare($mount->getMountPoint());
+	\OCP\JSON::error(array('data' => array('message' => $l->t('Storage not valid'))));
+	exit();
+}
+$result = $storage->file_exists('');
+if ($result) {
 	try {
-		// check if storage exists
-		$storage->checkStorageAvailability();
+		$storage->getScanner()->scanAll();
+		\OCP\JSON::success();
 	} catch (\OCP\Files\StorageInvalidException $e) {
-		// note: checkStorageAvailability will already remove the invalid share
 		\OCP\Util::writeLog(
 			'files_sharing',
 			'Invalid remote storage: ' . get_class($e) . ': ' . $e->getMessage(),
 			\OCP\Util::DEBUG
 		);
-		\OCP\JSON::error(
-			array(
-				'data' => array(
-					'message' => $l->t('Could not authenticate to remote share, password might be wrong')
-				)
-			)
-		);
-		exit();
+		\OCP\JSON::error(array('data' => array('message' => $l->t('Storage not valid'))));
 	} catch (\Exception $e) {
 		\OCP\Util::writeLog(
 			'files_sharing',
 			'Invalid remote storage: ' . get_class($e) . ': ' . $e->getMessage(),
 			\OCP\Util::DEBUG
 		);
-		$externalManager->removeShare($mount->getMountPoint());
-		\OCP\JSON::error(array('data' => array('message' => $l->t('Storage not valid'))));
-		exit();
-	}
-	$result = $storage->file_exists('');
-	if ($result) {
-		try {
-			$storage->getScanner()->scanAll();
-			\OCP\JSON::success();
-		} catch (\OCP\Files\StorageInvalidException $e) {
-			\OCP\Util::writeLog(
-				'files_sharing',
-				'Invalid remote storage: ' . get_class($e) . ': ' . $e->getMessage(),
-				\OCP\Util::DEBUG
-			);
-			\OCP\JSON::error(array('data' => array('message' => $l->t('Storage not valid'))));
-		} catch (\Exception $e) {
-			\OCP\Util::writeLog(
-				'files_sharing',
-				'Invalid remote storage: ' . get_class($e) . ': ' . $e->getMessage(),
-				\OCP\Util::DEBUG
-			);
-			\OCP\JSON::error(array('data' => array('message' => $l->t('Couldn\'t add remote share'))));
-		}
-	} else {
-		$externalManager->removeShare($mount->getMountPoint());
-		\OCP\Util::writeLog(
-			'files_sharing',
-			'Couldn\'t add remote share',
-			\OCP\Util::DEBUG
-		);
 		\OCP\JSON::error(array('data' => array('message' => $l->t('Couldn\'t add remote share'))));
 	}
+} else {
+	$externalManager->removeShare($mount->getMountPoint());
+	\OCP\Util::writeLog(
+		'files_sharing',
+		'Couldn\'t add remote share',
+		\OCP\Util::DEBUG
+	);
+	\OCP\JSON::error(array('data' => array('message' => $l->t('Couldn\'t add remote share'))));
 }
+
diff --git a/lib/private/util.php b/lib/private/util.php
index 9c78ad3ad1c1cfe88b1d9551cfa0d31a713040f9..1558a06f7fc656015aadf98fa02fbf60750c51e2 100644
--- a/lib/private/util.php
+++ b/lib/private/util.php
@@ -1245,6 +1245,7 @@ class OC_Util {
 	 * @return string of the response or false on error
 	 * This function get the content of a page via curl, if curl is enabled.
 	 * If not, file_get_contents is used.
+	 * @deprecated Use \OCP\Http\Client\IClientService
 	 */
 	public static function getUrlContent($url) {
 		try {