2012-01-06 100 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