0
我正在使用apache的FTPClient
從我的服務器獲取特定文件的大小。所以,我在android中遇到的錯誤是530 You aren't logged in
。而我的代碼如下,我已經在純Java中進行了測試。我不知道爲什麼這個錯誤發生在Android上,但Java中所有的東西都沒問題。Apache FTPClient:530您尚未登錄
client.connect("my-server-ip");
client.login("username", "password");
client.setKeepAlive(true);
client.setFileType(FTP.BINARY_FILE_TYPE, FTP.BINARY_FILE_TYPE);
client.setFileTransferMode(FTP.BINARY_FILE_TYPE);
client.sendCommand("SIZE " + "file-path");
try {
sizeStr = client.getReplyString().trim();
this.M_fileData.M_contentLength = Long.parseLong(sizeStr.split(" ")[1]);
System.out.println(sizeStr);
} catch (NumberFormatException e) {
e.printStackTrace();
client.disconnect();
}
純Java的結果是:213 1757682
,而Android的結果是530 You aren't logged in
。
任何人都可以解釋我如何解決這個問題嗎?
在此先感謝。
的FTPClient.login()方法並返回一個布爾以指示成功/失敗。您應該檢查確認登錄成功。我的猜測是login()方法失敗,這就是爲什麼你得到530錯誤。 –
另外,根據文檔http://commons.apache.org/net/api-3.1/org/apache/commons/net/ftp/FTPClient.html,你可以在connect()方法之後檢查getReplyCode()確認它連接到服務器。您也可以在每個操作後調用getReplyCode()來檢查響應狀態。 –
@Steven Mastandrea:login()在'android'中返回false並在'Java'中返回true: - / –