웹 사이트에서 HTML 페이지를 다운로드하고 로컬 시스템에 파일을 저장하는 Java 응용 프로그램을 구축 중입니다. 브라우저를 통해 웹 페이지의 URL에 수동으로 액세스 할 수 있습니다. 그러나 Java 프로그램에서 동일한 URL에 액세스하려고하면 서버가 503 오류를 반환합니다.Java 프로그램에서 URL에 액세스하는 중 HTTP 503 오류가 발생합니다.
샘플 URL = 브라우저를 통해 위의 URL에 액세스 할 수 http://content.somesite.com/demo/somepage.asp
: 여기에 시나리오입니다.
StringBuffer data = new StringBuffer();
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(sourceUrl.openStream()));
String inputLine = "";
while ((inputLine = br.readLine()) != null) {
data.append(inputLine);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
br.close();
}
그래서, 내 질문은 다음과 같습니다 :
내가 잘못 여기에 아무것도 모르지만, 자바 코드 아래는 페이지를 다운로드하는 데 실패?
서버가 프로그램/봇의 요청을 차단하고 브라우저의 요청 만 허용 할 수있는 방법이 있습니까?
질문 # 2가가는 한 서버는 'User-Agent' 헤더 또는 누락 된 Referer 헤더를 기반으로 거부하도록 구성 될 수 있습니다. – ZoogieZork
@ZoogieZork : 그게 무슨 일을하는 경우, 그것은 오동작이야. 5xx 오류는 내부 서버 문제에 사용하기위한 것입니다. 봇 거부는 4xx 오류를 반환해야합니다. – skaffman
내가 생각할 수있는 많은 원인이 있습니다 (개인적으로 "잘못된"사용자 에이전트로 인해 발생했다고 생각하지 않습니다. 오히려 4xx 오류를 반환했을 것입니다). 문제의 실제 URL을 게시 할 경우 더 나은 답변을 제공 할 수 있습니다. – BalusC