Y a-t-il un moyen simple et rapide de vérifier qu'une connexion FTP (inclut l'hôte, le port, le nom d'utilisateur et le mot de passe) est valide et fonctionne? J'utilise c #. Merci. P>
6 Réponses :
Utilisez soit System.net.ftpwebrequest ou System.net.webrequestMethods.ftp Pour tester votre connexion en utilisant vos identifiants de connexion. Si la requête FTP échoue pour une raison quelconque, le message d'erreur approprié sera renvoyé indiquant le problème (authentification, incapable de se connecter, etc.) p>
vous pouvez essayer d'utiliser
alors quelque chose comme p> system.net.ftpwebrequest code> et simplement vérifier la méthode
getResponsestream code>.
-1 parce que ftpwebrequest code> ne contient pas
getResponsestream code> méthode et
ftpwebrequest code> ne contient pas de constructeur sans paramètres (ne contient pas de constructeur public non plus).
Essayez quelque chose comme ceci:
FtpWebRequest requestDir = (FtpWebRequest)FtpWebRequest.Create("ftp://ftp.google.com"); requestDir.Credentials = new NetworkCredential("username", "password"); try { WebResponse response = requestDir.GetResponse(); //set your flag } catch { }
J'ai mis en œuvre quelque chose de similaire à votre solution Anishmarokey, mais cela semble échouer lorsqu'il s'agit de sécuriser les sites FTP. Avez-vous une idée de la manière de tester une connexion pour les FTPS? Merci.
Pour que ce code fonctionne, vous devez également définir la méthode de la demande (c'est-à-dire DemandeDir.Method = WebRequestMethods.ftp.listdirectoryDétails).
@Chrismitchell .NET ne supporte pas encore SFTP, mais il existe des bibliothèques telles que ssh.net qui ont cette fonctionnalité
@Flowy Il suffit d'ajouter: demandeDir.enablessl = true;
C'est la méthode que j'utilise, laissez-moi savoir si vous connaissez un meilleur.
/ * hola
Este Es el Metodo que utilizo Si conoces Uno Mejor Hasmelo Saber
Ubirajara 100% mexicano
isc.erthal@gmail.com
* / p>
Stackoverflow utilise l'anglais comme langue principale.
Ceci est du site MSDN pour afficher des fichiers à partir d'un serveur
public static bool DisplayFileFromServer(Uri serverUri) { // The serverUri parameter should start with the ftp:// scheme. if (serverUri.Scheme != Uri.UriSchemeFtp) { return false; } // Get the object used to communicate with the server. WebClient request = new WebClient(); // This example assumes the FTP site uses anonymous logon. request.Credentials = new NetworkCredential ("anonymous","janeDoe@contoso.com"); try { byte [] newFileData = request.DownloadData (serverUri.ToString()); string fileString = System.Text.Encoding.UTF8.GetString(newFileData); Console.WriteLine(fileString); } catch (WebException e) { Console.WriteLine(e.ToString()); } return true; }
Cela pourrait être utile.
public async Task<bool> ConnectAsync(string host, string user, string password) { try { FtpWebRequest request = (FtpWebRequest)WebRequest.Create(host); request.Credentials = new NetworkCredential(user, password); request.UseBinary = true; request.UsePassive = true; request.KeepAlive = false; // useful when only to check the connection. request.Method = WebRequestMethods.Ftp.ListDirectory; FtpWebResponse response = (FtpWebResponse) await request.GetResponseAsync(); return true; } catch (Exception) { return false; } }
Assurez-vous d'accepter une réponse appropriée à celle-ci.