Android - 如何从FTP网站提取HTML

时间:2016-08-23 05:16:13

标签: java android ftp

我到处寻找,但无法找到适合我特定情况的解决方案。

我有一个网站,它只是一堆文件的目录列表(在服务器上启用了目录列表)。 网站URL架构是'ftp://'。我想要做的就是提取HTML,以便我可以获取目录中文件的名称和URL。我尝试了以下代码(抱歉,我无法发布实际的FTP URL):

String ftpURL = "ftp://blah.com"
URL url = new URL(ftpURL);
URLConnection urlc = url.openConnection();

// open the stream and put it into BufferedReader
BufferedInputStream bis = new  BufferedInputStream(urlc.getInputStream()); // ERROR HERE

int inputLine;
String outputHtml = "";


while ((inputLine = bis.read()) != -1) {
    outputHtml += inputLine;
}

 bis.close();

当我运行此代码时,我在第4行代码中出现此错误:

  

java.io.IOException:无法连接到服务器:无法检索   档案:550

编辑:如果不能从ftp站点中提取HTML,我该如何获取ftp URL中指定的目录中每个文件的名称和URL列表? 此外,我应该注意,我可以公开访问ftp站点,并且无需任何身份验证即可查看所有子文件和目录。

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

  

java.io.IOException:无法连接到服务器:无法检索文件:550

" 550"是FTP服务器发送的代码,用于响应您请求文件。根据{{​​3}},这意味着:

     550 Requested action not taken.
         File unavailable (e.g., file not found, no access)

这仅仅意味着您的网址可能有误,即该文件在该服务器上不存在此名称,或者您没有任何权限可以检索该网址。在这种情况下,您还应该无法在Web浏览器中检索相同的URL。请注意,文件名的大小写对大多数FTP服务器都很重要。

请注意,您无法通过尝试访问ftp://hostname/directory来获取FTP中的目录内容,因为目录不是文件。您在浏览器中看到的是浏览器在FTP服务器上执行目录列表的结果,这与检索文件不同。要获得目录列表,您需要使用FTP库,即URLConnection将无济于事。有关详细信息,请参阅FTP standard