プログラム内で生成している URL への HTTP 接続を開いています。
String url = INPUT_URL;
HttpURLConnection connection;
while (true)
{
connection = (HttpURLConnection)new URL(url).openConnection();
connection.setInstanceFollowRedirects(true);
switch (connection.getResponseCode()/100)
{
case 3:
url = connection.getHeaderField("Location");
break;
case 4:
case 5:
// Report some error
return;
}
}
ここでcase 2
、コンテンツ タイプを識別したいと思います。例えば:
http://www.google.comに接続する場合、コンテンツ タイプは Text です。
http://www.google.com/favicon.icoに接続する場合、コンテンツ タイプは Image です。
それを判断するために URL 構造を使用することはできません。例えば:
- http://www.advertising.com/favicon.icoに接続すると、応答コードは 200 ですが、コンテンツ タイプはテキストです (コンテンツ自体は「要求されたファイル favicon.ico が見つかりませんでした。」)。
InputStream
オブジェクトを使用してコンテンツを読み取る方法は知っていますが、
可能であれば、コンテンツ自体を取得することは避けたいと考えています。
コンテンツタイプを判断するのにどのように役立つかわかりません。
どんなアイデアでも大歓迎です...ありがとう。