2012-04-26 3 views
0

Java의 HTTPUrlConnection 클래스를 사용하여 URL에 액세스하는 Android 미디어 플레이어를 작성하고 있습니다. 나는 최근에 다음과 같은 URL에 관련된 버그 보고서를 보냈습니다 :HTTPUrlConnection 및 application/octet-stream 콘텐츠 유형 응답 처리

"http://listen.theradio.cc"

이 URL가 리디렉션을 "http://listen.theradio.cc/theradiocc.pls "PLS 형식으로 재생 목록을 반환합니다. 내가 직면 한 문제는 내 응용 프로그램이 일반적으로 content-type 헤더 필드에서 URL을 어떻게 사용할지 결정하는 것입니다. 위에서 게시 한 URL은 content-type "application/octet-stream"을 반환합니다. 따라서 반환 된 재생 목록을 구문 분석하는 대신 내 애플리케이션에서 URL을 재생하려고합니다 (분명히 실패합니다). 이와 같은 상황에서 URL이 반환하는 콘텐츠의 유형을 효과적으로 결정할 수있는 다른 방법이 있습니까? InputStream을 얻고 반환 된 내용의 처음 몇 줄을 확인해야합니까?

답변

1

아무 것도 application/octet-stream 일 수 있습니다. 따라서 서버가 재생 목록에 대해 예상되는 콘텐츠 유형을 반환하지 않으므로 오해의 소지가 있습니다.

서버 측에서 수정하는 것이 더 좋습니다.

또한 HEAD 요청을 수행하면 URL에 대한 정보를 알 수 있어야합니다.

말하기 요청을 http://listen.theradio.cc/theradiocc.pls에게 보내면 다음과 같이 반환됩니다.

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 

따라서 문제를 해결하고 올바르게 수정해야합니다.