2012-06-21 5 views
0

현재 일부 폴링 관련 자료를 작성하고 있습니다. 나는 이것에 대한 간단한 REST-Interface를 작성하는 것을 피하려고한다. (많은 REST를 사용하고 있는데, 여전히 여기에 필요한 기능이 있는지 모르겠다.) 이미 기능을위한 인터페이스를 작성하는 이유는 무엇입니까?아파치는 파일을 다운로드하지 않고 날짜를 얻습니다.

저의 아이디어는 HttpUrlConnection을 열고 헤더에서 파일의 마지막 수정 날짜를 확인하십시오. 아파치는 분명히 "Last-Modified"날짜를 UTC로 보냅니다. 헤더를 확인한 후에 실제로 몸체를 검색하지 않고 연결을 닫습니다. 나는 이것이 아파치 로그에 오류를 일으킬 수 있다는 것을 두려워한다. 이것은 매우 불편할 것이다. 나는 단지 당신에게 의견을 물어보고 싶었습니다. 이것이 효과가있을 것이라고 생각하십니까? 더 나은 아이디어?

는 (내 유일한 옵션은 HttpURLConnection의 것 같다, 그래서 나는, 시스템 프록시 지원이 필요합니다.)

감사합니다, Stev

+0

그래서, 기본적으로, 당신이 요구하는지는 "어떻게 응답의 몸없이 바로 HTTP 헤더를 검색 할 수 있습니다?" –

답변

2

를 사용하면 HTTP 프로토콜을 보면, 그것이 HEAD을 가지고 볼 수 있습니다 당신이 필요로하는 것을하는 요청. Java 런타임의 HTTP 요청의 기본값은 GET이며이를 변경하는 것은 쉽지 않습니다.

모든 종류의 요청을 보낼 수있는 프레임 워크는 HttpClient입니다.

+0

위대한 하나, 고마워, 비록 내가 Java 6 여전히 useSystemProxy에 관해서는 버그라고 생각했다. 다시 시도해 보겠다.하지만 아파치의 HttpClient는 시스템 프록시를 사용할 때 실패한다. (값싼 http 프록시인데도 항상 양말 프록시로 사용하려고하기 때문이다.) – annih

+0

'socksProxyHost'를 설정할 때만 발생한다. 및'socksProxyPort'. http://docs.oracle.com/javase/6/docs/technotes/guides/net/proxies.html을 참조하십시오. –

1

당신은 거의 맞지만 설명하는 것보다 훨씬 단순합니다. HEAD라는 특수 HTTP 메소드가 있습니다. 데이터를 검색하는 데 필요한 동일한 요청을 만들어야하지만 GET 대신 HEAD를 사용해야합니다.

1

HTTP의 HEAD 메서드는 무엇을 의미합니다. 는 GET 요구에 대응하는 것 인 것과 동일한 응답을 요청한다

HEAD 있지만 응답 본체없이 :

Wikipedia에서 인용. 이는 전체 콘텐츠를 전송할 필요없이 응답 헤더에 작성된 메타 정보를 검색하는 데 유용합니다.

관련 문제