HttpClient를 사용하여 URL 상태를 얻는 가장 빠른 방법은 무엇입니까? 페이지/파일을 다운로드하고 싶지 않습니다. 페이지/파일이 있는지 알고 싶습니다. (리디렉션 인 경우 리디렉션을 따르고 싶습니다.)HttpClient를 사용하여 URL 상태 코드를 얻는 가장 빠른 방법은 무엇입니까
7
A
답변
6
HEAD 호출을 사용하십시오. 기본적으로 서버가 시체를 반환하지 않는 GET 호출입니다. 해당 설명서에서 예 :
HeadMethod head = new HeadMethod("http://jakarta.apache.org");
// execute the method and handle any error responses.
...
// Retrieve all the headers.
Header[] headers = head.getResponseHeaders();
// Retrieve just the last modified header value.
String lastModified = head.getResponseHeader("last-modified").getValue();
0
당신은 사용할 수 있습니다
HeadMethod head = new HeadMethod("http://www.myfootestsite.com");
head.setFollowRedirects(true);
// Header stuff
Header[] headers = head.getResponseHeaders();
는 웹 서버가 HEAD 명령을 지원하는지 확인 마십시오. HTTP 1.1 Spec
0
에서
페이지의 9.4 절 당신은 java.net.HttpURLConnection
와 함께이 정보를 얻을 수 있습니다 :
URL url = new URL("http://stackoverflow.com/");
URLConnection urlConnection = url.openConnection();
if (urlConnection instanceof HttpURLConnection) {
int responseCode = ((HttpURLConnection) urlConnection).getResponseCode();
switch (responseCode) {
case HttpURLConnection.HTTP_OK:
// HTTP Status-Code 302: Temporary Redirect.
break;
case HttpURLConnection.HTTP_MOVED_TEMP:
// HTTP Status-Code 302: Temporary Redirect.
break;
case HttpURLConnection.HTTP_NOT_FOUND:
// HTTP Status-Code 404: Not Found.
break;
}
}
8
내가 매우 좋아하는 HttpClient를에서 상태 코드를 얻는 방법은 다음과 같습니다
public boolean exists(){
CloseableHttpResponse response = null;
try {
CloseableHttpClient client = HttpClients.createDefault();
HttpHead headReq = new HttpHead(this.uri);
response = client.execute(headReq);
StatusLine sl = response.getStatusLine();
switch (sl.getStatusCode()) {
case 404: return false;
default: return true;
}
} catch (Exception e) {
log.error("Error in HttpGroovySourse : "+e.getMessage(), e);
} finally {
try {
response.close();
} catch (Exception e) {
log.error("Error in HttpGroovySourse : "+e.getMessage(), e);
}
}
return false;
}
관련 문제
- 1. Google 검색을위한 URL 목록을 얻는 가장 빠른 방법은 무엇입니까?
- 2. dom 요소를 얻는 가장 빠른 방법은 무엇입니까?
- 3. 지도의 서브맵을 얻는 가장 빠른 방법은 무엇입니까
- 4. 오브젝트의 속성을 얻는 가장 깨끗하고/가장 빠른 방법은 무엇입니까?
- 5. 마우스에서 QWidget 픽셀 색상을 얻는 가장 빠른 방법은 무엇입니까?
- 6. Apache의 HttpClient를 사용하여 Gmail에 로그인하는 방법은 무엇입니까?
- 7. URL 파일을 거쳐 크기를 합산하는 가장 빠른 방법은 무엇입니까?
- 8. 텍스트 문자열을 URL 변수로 변환하는 가장 빠른 방법은 무엇입니까?
- 9. 자동 마이그레이션에서 NSMigrationManager에 대한 참조를 얻는 가장 빠른 방법은 무엇입니까?
- 10. URL에서 HTTP 응답 코드를 얻는 가장 좋은 방법은 무엇입니까?
- 11. 파이썬에서 여러 개의 트리 사본을 얻는 가장 빠른 방법은 무엇입니까?
- 12. 가장 빠른 저장 방법은 무엇입니까?
- 13. .NET에서 빠른 RPC를 얻는 가장 쉬운 방법은 무엇입니까?
- 14. 비트 맵의 픽셀 열을 얻는 가장 빠르고 빠른 방법은 무엇입니까?
- 15. 모든 스프링 서비스의 성능 메트릭을 얻는 가장 빠른 방법은 무엇입니까?
- 16. WinForms C#에서 포커스를 얻는 가장 빠른 방법은 무엇입니까?
- 17. 튜플에서 무작위 요소를 얻는 가장 빠른 방법은 무엇입니까? (파이썬)
- 18. iOS에서 가장 빠른 그리기 방법은 무엇입니까?
- 19. 컬렉션에서 요소에 액세스하는 가장 빠른 방법은 무엇입니까?
- 20. LibTiff.Net을 사용하여 tif 이미지에서 tiff 태그 수를 얻는 가장 빠르고 가장 빠른 방법은 무엇입니까?
- 21. 전체 URL 주소를 가장 효율적으로 얻는 방법은 무엇입니까?
- 22. 가장 빠른 방법은
- 23. PHP의 URL 단축 서비스 코드를 생성하는 가장 좋은 방법은 무엇입니까?
- 24. Xcode 4에서 코드를 탐색하는 가장 빠른 방법
- 25. 406 상태 코드를 올바르게 보내는 방법은 무엇입니까?
- 26. 문자열에서 하위 문자열을 추출하는 가장 빠르고 가장 빠른 방법은 무엇입니까?
- 27. 디렉토리에서 하나의 파일을 얻는 가장 효율적/가장 빠른 방법
- 28. HTML5로 그릴 수있는 가장 빠른 방법은 무엇입니까
- 29. Params를 추가하고 문자열을 얻는 방법은 무엇입니까? (자바, HttpClient를 4.X)
- 30. 문자열을 바이너리로 변환하는 가장 빠른 방법은 무엇입니까?
CloseableHttpResponse 예제를 제공해 주셔서 감사합니다. "404"는 일종의 마법 번호입니다. - 대신 Apache의 HttpStatus 클래스를 사용할 수 있습니다. switch (sl.getStatusCode()) { case HttpStatus.SC_CREATED : false를 반환합니다. 기본값 : true를 반환합니다. } –