簡體   English   中英

如何在Java中閱讀icy協議?

[英]How to read icy protocol in Java ?

我想從流式冰冷協議中讀取數據。問題是我嘗試過的所有庫(dsj,MP3SPI)都使用HttpUrlConnection來執行此操作。但是我已經在Windows 7上嘗試了它並且我收到了“無效的http響應”這是正常原因“HTTP 200 OK”與“ICY 200 OK”不同。我知道這可以通過套接字完成但我是初學者所以如果有任何可以提供幾行o代碼所以我可以得到一個想法我會很感激。如果你有一些解決方案,請分享他們。謝謝你,祝你有個美好的一天!

這是我嘗試過的代碼:

URLConnection connection = new URL("89.47.247.59:8020").openConnection();
InputStream in = connection.getInputStream();
System.out.println("getting lots of bytes");
in.close();

錯誤是:

Exception in thread "main" java.io.IOException: Invalid Http response
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.jav‌​a:1328)
at javaapplication1.JavaApplication1.main(JavaApplication1.java:46) Java Result: 1

抱歉無法弄清楚如何格式化代碼或添加換行符。

編輯:我在下面的評論中包含了代碼。

試試這個:

URL url=new URL("89.47.247.59:8020");
Socket socket=new Socket(url.getHost(), url.getPort());
OutputStream os=socket.getOutputStream();
String user_agent = "WinampMPEG/5.09";
String req="GET / HTTP/1.0\r\nuser-agent: "+user_agent+"\r\nIcy-MetaData: 1\r\nConnection: keep-alive\r\n\r\n";
os.write(req.getBytes());
is=socket.getInputStream();

這完全適合我!

MP3SPI應該適用於所有系統。

如果要提取ICY元數據,請檢查以下代碼: https ://gist.github.com/1008126有一個IcyInputStream可以打開URL並返回一個可以附加到解碼器的常規InputStream,它還會提取像Artist和跟蹤標題。

我使用此處的信息編寫了此代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM