2012-01-06 90 views
2

我試圖通過Apache的FTP連接到服務器:Android如何連接到FTP?

public boolean ftpConnect(String host, String user, String pass){ 
     try { 
      ftpClient = new FTPClient(); 
      ftpClient.connect(host); 
      if(FTPReply.isPositiveCompletion(ftpClient.getReplyCode())){ 
       boolean status = ftpClient.login(user, pass); 
       ftpClient.enterLocalPassiveMode(); 
       return status; 
      } 
     } catch (SocketException e) { 
      Log.d("FTP", "Error: could not connect to socket " + host); 
     } catch (IOException e) { 
      Log.d("FTP", "Error: could not connect to host " + host); 
     } 
     return false; 
} 

如果我通過Wi-Fi連接到互聯網,上面的代碼工作,但如果我通過3G連接不能正常工作。我已經在 清單上添加了Internet的權限。我還沒有在google上找到這個解釋。

+0

也許你的3G供應商不允許在他們的網絡上使用FTP。 – 2012-01-06 16:29:10

+0

但我測試了2個不同國家的2個提供商的這個應用程序,並沒有工作。 – djcharon 2012-01-06 16:32:20

+0

我已經在使用ftpClient.enterLocalPassiveMode(); – djcharon 2012-01-06 16:33:19

回答

2
try { 
    FTPClient ftpClient = new FTPClient(); 
    ftpClient.connect(InetAddress.getByName(Your host Url)); 
    ftpClient.login(loginName, password); 
    System.out.println("status :: " + ftpClient.getStatus()); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

此外,請參閱我的答案:Track FTP upload data in android?

+0

結果相同。 – djcharon 2012-01-07 08:12:10