我到处寻找,但无法找到适合我特定情况的解决方案。
我有一个网站,它只是一堆文件的目录列表(在服务器上启用了目录列表)。 网站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站点,并且无需任何身份验证即可查看所有子文件和目录。
有什么想法吗?谢谢!
答案 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。