我正在编写一个Android媒体播放器,它使用Java的HTTPUrlConnection类来访问URL。我最近收到了与以下网址相关的错误报告:
“http://listen.theradio.cc”
此网址重定向到“http://listen.theradio.cc/theradiocc.pls”,后者以PLS格式返回播放列表。我面临的问题是我的应用程序通常决定如何处理内容类型标题字段上最好的URL。我上面发布的URL返回内容类型“application / octet-stream”,可以是任何内容。因此,我没有尝试解析返回的播放列表,而是尝试播放URL(显然失败了)。有没有其他方法可以有效地确定URL在这种情况下返回什么类型的内容?我应该尝试获取InputStream并检查返回内容的前几行吗?
答案 0 :(得分:1)
任何内容都可以application/octet-stream
,因此它会产生误导,因为服务器不会返回播放列表的预期内容类型。
最好在服务器端修复。
另外,执行HEAD
请求时,应该可以知道URL的信息。
向http://listen.theradio.cc/theradiocc.pls
发出curl请求后返回。
curl -i http://listen.theradio.cc/theradiocc.pls
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 26 Apr 2012 03:44:42 GMT
Content-Type: application/octet-stream
Content-Length: 111
Last-Modified: Tue, 15 Nov 2011 23:57:04 GMT
Connection: keep-alive
Accept-Ranges: bytes
[playlist]
NumberOfEntries=1
File1=http://theradio.cc:8000/trcc-stream
Title1=TheRadio.CC
Length1=-1
Version=2
所以事情需要修复并妥善修复!