2017-04-20 143 views
1

我使用Apache的百科全書網3.6庫連接FTPS服務器。 FTPS服務器在第三方的NAT後面。並且我無法更改服務器端的任何設置。 我可以登錄到服務器,但無法列出文件。我已經用一些公共的FTP和FTPS服務器嘗試了相同的代碼,並且結果是成功的。似乎他們不在NAT後面。但是filezilla可以成功連接並列出有問題的服務器中的文件。 有我的代碼JAVA FTPSClient文件中列出的問題

 ftps.connect(server, port); 
     System.out.println("Connected to " + server + "."); 

     reply = ftps.getReplyCode(); 
     ftps.enterLocalPassiveMode(); 
     if (!FTPReply.isPositiveCompletion(reply)) { 
      ftps.disconnect(); 
      System.err.println("FTP server refused connection."); 
      System.exit(1); 
     } 
     if (!ftps.login(username, password)) { 
      ftps.logout(); 

     } 
     // ftps.setEnabledSessionCreation(false); 
     ftps.feat(); 
     ftps.execPBSZ(0); 
     ftps.execPROT("P"); 
     ftps.setFileType(FTP.BINARY_FILE_TYPE); 
     FTPFile dirs[] = ftps.listDirectories(); 

而且還有我的FTPS登錄:

220 FTP Server ready. 
AUTH TLS 
234 AUTH TLS successful 
Connected to x.x.x.x 
USER ******* 
331 Password required for azercell 
PASS ******* 
230 User myuser logged in 
FEAT 
211-Features: 
MDTM 
MFMT 
LANG bg-BG;en-US;fr-FR;it-IT;ja-JP;ko-KR;ru-RU;zh-CN;zh-TW 
TVFS 
UTF8 
AUTH TLS 
MFF modify;UNIX.group;UNIX.mode; 
MLST modify*;perm*;size*;type*;unique*;UNIX.group*;UNIX.mode*;UNIX.owner*; 
PBSZ 
PROT 
REST STREAM 
SIZE 
211 End 
PBSZ 0 
200 PBSZ 0 successful 
PROT P 
200 Protection set to Private 
TYPE I 
200 Type set to I 
SYST 
215 UNIX Type: L8 
PASV 
227 Entering Passive Mode (192,168,2,50,192,12). 
[Replacing PASV mode reply address 192.168.2.50 with x.x.x.x] 
LIST 
150 Opening BINARY mode data connection for file list 
425 Unable to build data connection: Operation not permitted 

我讀到NAT連接落後於之前的版本3.6公網庫之前想不出妥善處理。

任何人都可以幫助我嗎?我的代碼有什麼問題?

+0

它可以是一個愚蠢的答案,但你寫道:「但是FileZilla的可以成功連接和列表文件」,這樣就可以看到文件,而不是目錄,也許該目錄是私有的,但沒有文件,所以儘量FTPFile [ ] files1 = ftps.listFiles(); –

+0

LizLamperouge,我已經嘗試過。同樣的錯誤 – ali

+0

好的,你確定你在正確的目錄嗎?嘗試ftps.printWorkingDirectory(); ftps.changeWorkingDirectory( 「/目錄」); –

回答