Java を使用して、このサイト「 http://207.200.96.231:8008 」から HTML ページのソース コンテンツを取得しようとしています。ただし、Java のデフォルト ライブラリは、この問題では役に立ちませんでした。このチュートリアルも使用してみましたが、どちらも機能しませんでした。この問題は、サイトのセキュリティ保護のために発生していると思います。以下に示す次のコードを実行すると、例外が発生します: java.io.IOException: Invalid Http response
.
コードを実装する方法のアイデアはありますか? または、私のニーズを満たすことができるライブラリはありますか? これまでのところ、私が提供したサイトに接続する別のアプローチを使用することを HTML パーサーで試してみJSoup
ましJericho
たが、それらも機能しませんでした。
String urlstr = "http://72.26.204.28:9484/played.html";
try {
URL url = new URL(urlstr);
URLConnection urlc = url.openConnection();
InputStream stream = urlc.getInputStream();
BufferedInputStream buf = new BufferedInputStream(stream);
StringBuilder sb = new StringBuilder();
while ( true){
int data = buf.read();
if ( data == -1)
break;
else
sb.append((char)data);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
編集 (解決済みの問題): Karai17とTrashgodの助けを借りて、この問題を解決することができました。Shoutcast ページのコンテンツにアクセスするには、ユーザー エージェントが必要です。したがって、次のコードを追加するだけです。
urlConnection.setRequestProperty("User-Agent", "Mozilla/5.0");
最新のコードは次のようになります。
try {
URL url = new URL("http://207.200.96.231:8008/7.html");
HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
urlConnection.setRequestProperty("User-Agent", "Mozilla/5.0");
InputStream is = urlConnection.getInputStream();
BufferedInputStream in = new BufferedInputStream(is);
int c;
while ((c = in.read()) != -1) {
System.out.write(c);
}
urlConnection.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}