我創建了一個apache FTPS客戶端(因爲遠程服務器不允許普通的FTP)。我可以沒有問題地連接和刪除文件,但是當使用retrieveFile()或retrieveFileStream()時,它會掛起。FTPSClient retrievefile()掛
出於某種原因,非常小的文件做傳輸(最多5792個字節),但什麼都給出了以下PrintCommandListener輸出:
運行:
220 ----------歡迎來到Pure-FTPd [privsep] [TLS] ----------
220-您是允許的50個用戶中的第2個。
220-當地時間現在是19:42。服務器端口:21.
220 - 這是一個私人系統 - 沒有匿名登錄
220-IPv6連接也歡迎在此服務器上。
220 15分鐘不活動後將斷開連接。
AUTH TLS
234 AUTH TLS OK。
用戶
331用戶確定。需要密碼
PASS
230行。目前的限制類目錄是/
TYPE現在一個
200型是ASCII
EPSV
229擴展被動模式OK(||| 53360 |)
RETR test.txt的
150接受的數據連接
150 7.3 KB的下載
下面是代碼:
try {
FTPSClient ftpClient = new FTPSClient("tls",false);
ftpClient.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)));
ftpClient.connect(host, port);
int reply = ftpClient.getReplyCode();
if (FTPReply.isPositiveCompletion(reply)) {
ftpClient.enterLocalPassiveMode();
ftpClient.login(username, password);
ftpClient.enterLocalPassiveMode();
FileOutputStream outputStream = new FileOutputStream(tempfile);
ftpClient.setFileType(FTPClient.ASCII_FILE_TYPE);
ftpClient.retrieveFile("test.txt", outputStream);
outputStream.close();
ftpClient.logout();
ftpClient.disconnect();
}
} catch (IOException ioe) {
System.out.println("FTP client received network error");
}
任何想法,不勝感激。
請正確格式化您的代碼。您可以使用編輯器頂部提供的工具將其標記並指向並單擊格式。 –