티스토리 뷰
Full Video Download
- Java URL Download를 이용하여 Video를 다운로드 하는 중 용량이 다소 큰 파일의 경우 Download가 되지 않는 현상이 발생했다.
- 자세히 브라우저에서 확인해보니 요청을 보냈을 때 서버의 응답코드는 302 였다.
- 클라이언트가 요청한 리소스가 Location 헤더에 주어진 URL에 일시적으로 이동되었음을 가리킴
- 검색을 통해서 확인해보니 해당 서버에서 Video 데이터를 다른 위치로 redirect를 하는 경우가 있어 최종 redirect된 URL을 알아내는 방법으로 해결이 가능하다는 내용을 확인하였다.
해결방법
- Java 코드로 해결하는 방법은 302 코드를 응답하는 경우 Location헤더에 담긴 URL로 다시 요청을 보내는 것이다.
- 위 동작을 200 코드를 응답할 때까지 반복하여 최종 URL을 가져오는 것
- 아래 코드는 해당 동작을 수행하는 메서드이다. (재귀로 동작)
- 원하는 URL을 넘겨주면 최종 URL을 반환하는 메서드
public static String getFinalLocation(String address) throws IOException{
URL url = new URL(address);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
int status = conn.getResponseCode();
if (status != HttpURLConnection.HTTP_OK)
{
if (status == HttpURLConnection.HTTP_MOVED_TEMP
|| status == HttpURLConnection.HTTP_MOVED_PERM
|| status == HttpURLConnection.HTTP_SEE_OTHER)
{
String newLocation = conn.getHeaderField("Location");
return getFinalLocation(newLocation);
}
}
return address;
}
참고
반응형
'프로그래밍 > JAVA' 카테고리의 다른 글
[Java] 스트림 슬라이싱 방법 (0) | 2020.08.12 |
---|---|
(Java) Key, Mouse Hooking(리스너) 기능 구현 방법 (0) | 2020.08.10 |
(Java)Apache Poi 사용시 "The maximum number of Cell Styles was exceeded.." 이슈 해결법 (2) | 2020.08.08 |
[Java] PNG 파일에 Meta 데이터 추가하는 방법 (0) | 2020.08.07 |
[Java] URL로 부터 File Download 하는 방법 (0) | 2020.08.05 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- JavaFX
- 일본 배낭여행
- JavaFX 테이블뷰
- 자바
- 일본 자전거 여행
- 스프링부트
- 방통대 과제물
- intelij
- effective java
- 배낭 여행
- 자전거 여행
- 자전거
- java
- 텐트
- Java UI
- 일본 여행
- springboot
- 일본여행
- effectivejava
- 이펙티브 자바
- TableView
- 배낭여행
- 인텔리제이
- JavaFX Window Close
- JavaFX 종료
- 이펙티브자바
- windows
- git
- 이펙티브
- JavaFX Table View
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함