Я работаю в течение 24 часов, чтобы найти проблему с этим онлайн-потоком: http://str45.streamakaci.com: 8014 Вы можете попробовать это, и оно работает, но когда я пытаюсь получить заголовок из него, используя Java я получаю это:
Sending 'GET' request to URL : http://str45.streamakaci.com:8014
Response Code : -1
Response Message : {Content-type=[unknown/unknown]}
Когда я использую SMSSniffer, чтобы увидеть, что происходит с возвращаемыми HTTP-заголовками, они верны, и я получаю это
GET / HTTP/1.1
Content-Type: text/html; charset=UTF-8
Icy-MetaData: 1
Accept-Encoding: gzip
Content-Encoding: gzip, deflate
Cache-Control: no-cache
User-Agent: Java/1.8.0_131
Host: str45.streamakaci.com:8014
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
ICY 200 OK
icy-notice1:<BR>This stream requires <a href="http://www.winamp.com/">Winamp</a><BR>
icy-notice2:SHOUTcast Distributed Network Audio Server/Linux v1.9.8<BR>
icy-name:Radio Flemme MP3
icy-genre:Various
icy-url:http://www.radioflemme.com
content-type:audio/mpeg
icy-pub:0
icy-metaint:32768
icy-br:128
с длинным текстом под заголовками.
вот код Java для получения заголовка HTTP, который отлично работает с другим потоком ShoutCast, но не с этим.
private static void sendGet() throws Exception {
String url = "http://str45.streamakaci.com:8014";
HttpURLConnection httpClient =
(HttpURLConnection) new URL(url).openConnection();
// optional default is GET
httpClient.setRequestMethod("GET");
//add request header
httpClient.setRequestProperty("Content-Type", "text/html; charset=UTF-8");
httpClient.setRequestProperty("Icy-MetaData", "1");
httpClient.setRequestProperty("Accept-Encoding", "gzip");
httpClient.setRequestProperty("Content-Encoding", "gzip, deflate");
httpClient.setRequestProperty("Cache-Control", "no-cache");
int responseCode = httpClient.getResponseCode();
System.out.println("\nSending 'GET' request to URL : " + url);
System.out.println("Response Code : " + responseCode);
String name = httpClient.getHeaderField("icy-metaint");
// System.out.println("Response name : " + name);
System.out.println("Response Message : " + httpClient.getHeaderFields());
}
Пожалуйста, кто-нибудь может помочь мне решить эту проблему. Привет