解析Shoutcast一样7.html元数据在Android数据、Shoutcast、Android、html

2023-09-07 22:42:48 作者:夏天

我想查询使用此URL一个Shoutcast一样流的状况:

I am trying to check the status of a SHOUTcast stream using this URL:

http://85.17.167.136:8684/7.html

...返回数据,如:

... which returns data like:

<HTML><meta http-equiv="Pragma" content="no-cache"></head><body>7,1,77,100,7,128,+44(0)7908 340 811 Follow Us @visionradiouk</body></html>

我知道,返回1,如果流处于正常运行或返回0,如果流下来的第一个逗号后面。我的问题是获得该页面的HTML?我用这个code,它适用于其他网站,如谷歌等。

I know that the after the first comma returns 1 if the stream is up and running or returns 0 if the stream is down. My problem is getting the html of that page? I use this code, which works on other websites like Google etc.

    TextView tView = (TextView) findViewById(R.id.textView1);


String htmlCode = "";

try {
    URL url = new URL("http://85.17.167.136:8684/7.html"); 
    BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));

    String inputLine;

    while ((inputLine = in.readLine())!= null)
        htmlCode += inputLine;
    System.out.println(htmlCode);
    tView.setText(htmlCode);
    in.close();     
} catch (Exception e){
    System.out.println("error");
}


}

这是什么,我做错了任何想法?

Any ideas on what I am doing wrong?

推荐答案

继承人Pulsarman325的工作解决方案,收拾,一点点额外的东西,我不得不添加到得到它的工作(try / catch语句和可变initialisations)

Heres Pulsarman325's working solution, tidied up, with a little extra stuff i had to add to get it to work (try/catch and variable initialisations)

String url = "http://molestia.ponify.me:8062";

URL url2=null;

try
{
    url2 = new URL(url + "/7.html");

}

catch (MalformedURLException e1)
{
    e1.printStackTrace();
}

URLConnection con=null;

try
{
    con = url2.openConnection();
}

catch (IOException e1)
{
  e1.printStackTrace();

}

con.setRequestProperty("User-Agent", "Mozilla/5.0");

Reader r = null;

try
{
    r = new InputStreamReader(con.getInputStream());
}

catch (IOException e)
{
  e.printStackTrace(); 
}

StringBuilder buf = new StringBuilder();

int ch=0;

while (true)
{
    try
    {
        ch = r.read(); 
    }

    catch (IOException e)
    {
      e.printStackTrace();  
    }

    if (ch < 0)
      break;

    buf.append((char) ch);

}

String str = buf.toString();

String trackinfo = str.split(",")[6].split("</body>")[0];

Log.d("HTML", trackinfo);