2009-12-14 4 views
0

Je n'ai aucune idée de comment faire un FTPS (FTP sur SSL) sur l'iPhone. Je souhaite utiliser le code suivantiPhone FTPS client

ftpStream = CFWriteStreamCreateWithFTPURL(NULL, (CFURLRef) url); 
CFWriteStreamSetProperty(ftpStream, kCFStreamPropertyFTPUserName,username); 
CFWriteStreamSetProperty(ftpStream, kCFStreamPropertyFTPPassword,password); 

self.networkStream = (NSOutputStream *) ftpStream;  
[self.networkStream setProperty:NSStreamSocketSecurityLevelSSLv3 forKey:(id)NSStreamSocketSecurityLevelKey]; 

self.networkStream.delegate = self; 
[self.networkStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; 
[self.networkStream open]; 

... 

- (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode 
{ 
    NSLog(@"Hello\n"); 
} 

Ce code se connecte au serveur mais arrête de parler tous ensemble. J'ai également essayé d'utiliser ce qui suit pour définir le niveau de sécurité

NSDictionary *settings = [NSDictionary dictionaryWithObjectsAndKeys: 
    (NSString *)kCFStreamSocketSecurityLevelSSLv3, kCFStreamSSLLevel, 
    kCFBooleanTrue, kCFStreamSSLAllowsAnyRoot, 
    kCFBooleanFalse, kCFStreamSSLValidatesCertificateChain, 
    hostName, kCFStreamSSLPeerName, 
    kCFBooleanFalse, kCFStreamSSLIsServer, 
    kCFBooleanFalse,kCFStreamSSLValidatesCertificateChain, 
    kCFBooleanTrue, kCFStreamSSLAllowsExpiredCertificates, 
    kCFBooleanTrue, kCFStreamSSLAllowsExpiredRoots, 
    nil]; 
CFWriteStreamSetProperty(ftpStream, kCFStreamPropertySSLSettings, settings); 

Ceci me permet de me connecter et de transférer des données mais pas via SSL.

Une idée de ce que je fais mal.

Répondre

2

Il n'y a pas FTPS capacités intégrées sur l'iPhone voir: http://developer.apple.com/iphone/library/technotes/tn2009/tn2152.html

Vous devez construire votre propre bibliothèque FTPS. Je ne suis pas non plus au courant de toute bibliothèque tierce FTPS pour l'iPhone - mais l'article ci-dessus donne une vue d'ensemble des possibilités de transfert de fichiers disponibles.

0

Vous devriez vérifier cet exemple, est de la bibliothèque iOS Developer, il est appelé SimpleFTPSample la description dit:

SimpleFTPSample montre comment faire des opérations simples FTP en utilisant les API NSURLConnection et CFFTPStream. Il peut télécharger un fichier en utilisant à la fois NSURLConnection et CFFTPStream. En outre, il peut télécharger un fichier, répertorier un répertoire et créer un répertoire en utilisant CFFTPStream.

Espérons que cela vous aide.

Questions connexes