2016-08-23 12 views
0

私はどこにでも見てきましたが、私の特定のケースでは解決策を見つけることができません。Android - FTPウェブサイトからHTMLを抽出する方法

私はウェブサイトを持っているだけで、たくさんのファイルのディレクトリリストが必要です(ディレクトリリストはサーバー上で有効になっています)。 ウェブサイトのURLスキーマは「ftp://」です。私がしたいのは、ディレクトリ内のファイルの名前とURLを取得できるようにHTMLを抽出することだけです。私は(申し訳ありませんが、私は実際のFTPのURLを投稿することはできません)、次のコードを試してみました:

のjava:

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行目に、このエラーを取得します ファイルを取得することができません::.io.IOException:サーバーに接続できません550

EDIT: ftpサイトからHTMLを抽出することは可能ではない場合、どのように私は、リストを取得しに行きますかの名前とftpのURLで指定されたディレクトリ内の各ファイルへのURL? また、ftpサイトに公開してアクセスすることができ、認証を必要とせずにすべてのサブファイルとディレクトリを表示できます。

アイデア?ありがとうございました!

+0

'ftp://'リンクがHTMLを返すと思いますか? FTPプロトコルは、HTTPとは別個のものです。 'ftp://'リンクをブラウズするときにブラウザーに表示されるものは、FTPサーバーと通信して結果を内部的にHTMLとしてレンダリングするブラウザーです。ワイヤを介してHTMLは送信されません。 –

+0

http://commons.apache.org/proper/commons-net/ –

+0

@ジムガリソンのようなFTPクライアントを試してみてください:あなたはFTPを使ってあらゆる種類のデータ、つまり画像、プログラム、そしてHTMLファイルを転送できます。データ(画像、HTML ...)の内容はプロトコル(HTTP、FTP、...)とは関係ありません –

答えて

0

にjava.io.IOException:サーバーに接続できません:ファイルを取得することができません:550

「550」は、ファイルを要求する応答でFTPサーバによって送信コードです。 FTP standardによれば、これは意味:単にあなたのURLがファイルがこの名前のサーバーに存在しないことや、あなたがそれを取得するためのすべての権限を持っていないこと、すなわち、おそらく間違っていることを意味

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

を。この場合、Webブラウザ内で同じURLを取得することもできません。ほとんどのFTPサーバーでは、ファイル名の大文字と小文字が区別されます。

ディレクトリがファイルではないため、ftp://hostname/directoryにアクセスしようとすると、FTPでディレクトリの内容を取得できないことに注意してください。代わりにブラウザで表示されるのは、ブラウザがファイルを取得するのとは異なるFTPサーバー上にディレクトリ一覧を表示した結果です。ディレクトリリストを取得するには、代わりにFTPライブラリを使用する必要があります。つまり、URLConnectionは役に立ちません。詳細については、URLConnection FTP list filesを参照してください。

+0

URLはどのファイルも指していないと思います。 –

+0

@Steffen奇妙なことは、私がWebブラウザ上のftp URLにアクセスすると、ディレクトリ内のすべてのサブファイルを見ることができ、それらを開くことができるということです。そして、サーバー上でftp URLがpublicに設定されているので、認証は必要ありません。 – n00bAppDev

+0

@ n00bAppDev:編集されたレスポンスを参照してください。ご覧になるサーバーにHTMLファイルは保存されていません。代わりに、ブラウザがあなたのためのディレクトリリストを行っています。 –

関連する問題