[英]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.java: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();
這完全適合我!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.