FTP接続でエラーになった場合のFTPのレスポンスコードの取り方
AppleのFTP接続のサンプル(SimpleFTPSample)で、
なぜかディレクトリ作成のサンプルでしかレスポンスコードをチェックしていないので、他の場合でもいけるのか試してみた。
CFReadStreamRef使用時はCFReadStreamGetError()、
CFWriteStreamRef使用時はCFWriteStreamGetError()を使って、
返ってきたCFStreamErrorのdomainとerrorを確認する。
SimpleFTPSampleのListControllerのstream:handleEvent:の
case NSStreamEventErrorOccurred:に次のコードを追加、
CFStreamError error = CFReadStreamGetError((__bridge CFReadStreamRef)self.networkStream);
NSLog(@"domain = %ld", error.domain);
NSLog(@"error = %ld", error.error);
ためしに間違ったパスワードを指定して接続した場合を確認
2012-09-08 16:37:33.133 FTPSample[13254:707] domain = 6 // kCFStreamErrorDomainFTP
2012-09-08 16:37:33.134 FTPSample[13254:707] error = 530 // Not logged in.
※レスポンスコードはここのページを参照
http://www.atmarkit.co.jp/fnetwork/rensai/netpro10/ftp-responsecode.html
ちゃんととれてるよなあ。
なんで他のサンプルではチェックしていないんだろう。