2016-08-25 2 views
0

자바 프로젝트를 통해 .png 파일을로드하려고 할 때마다 403 오류가 발생합니다. 이상한 점은 내가 현재 사용하고있는 호스트를 가질 때까지 이전에 사용한 다른 호스트에서 작동한다는 것입니다. 나는 약간의 연구를 해왔고, 헤더에 의해 발생한 것처럼 보입니다. 내 호스트에 의해 검사되고 있으므로 클라이언트가 봇이라 가정하므로 403 오류가 발생합니다.403 Java 오류가 허락되지 않았 음

private static Sprite BACKGROUND; 
    static { 
     try { 
      BACKGROUND = new Sprite(new URL("http://www.CENSORED/client/bg.png")); 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } 
    } 

이미지가 여기에 사용됩니다

BACKGROUND.drawSprite((frameWidth/2) - (BACKGROUND.myWidth/2), (frameHeight/2) - (BACKGROUND.myHeight/2)); 

오류 :

java.io.IOException: Server returned HTTP response code: 403 for URL: http://www.CENSORED.com/client/bg.png 

내가 나를이 오류를 무시 도움이 될 헤더 또는 아무것도를 추가 할 수있는 확실하지 않다.

+0

수 있을까 여러 가지 이유가 당신이 어떤 좋은 "사용자 에이전트"헤더를 전송하지 않을 것을 할 수있다. 허용 목록에있는 요청의 출처 만 제공하는 정책 일 수 있습니다. –

+0

Java를 사용하지 않고 서버의 이미지에 액세스 할 수 있습니까? 예를 들어, Linux에서 wget을 사용하고 있습니까? 당신과 네트워크 사이에 프록시가있을 수 있습니까? – pianista

+0

403은 다음을 의미합니다. '서버가 요청을 이해했지만이를 이행하기를 거부했습니다. 승인은 도움이되지 않으며 요청을 반복해서는 안됩니다. 요청 방법이 HEAD가 아니며 서버가 요청을 이행하지 않은 이유를 공개하기를 원할 경우 엔 엔터티에서 거절 이유를 설명해야합니다 (SHOULD). 서버가 클라이언트가이 정보를 사용할 수 없도록하려는 경우 상태 코드 404 (찾을 수 없음)를 대신 사용할 수 있습니다. 'http : // www.CENSORED.com/client/bg.png' 읽기 권한 –

답변

0

CORS (Cross-Origin Resource Sharing) 문제가 있습니까?

리소스는 첫 번째 리소스 자체가 제공하는 도메인이 아닌 다른 도메인에서 리소스를 요청할 때 원본 HTTP 요청을 만듭니다. 예를 들어, domain-a.com에서 게재 된 HTML 페이지는 domain-b.com/image.jpg에 대한 img src 요청을 작성합니다. 현재 웹상의 많은 페이지에서 CSS 스타일 시트, 이미지 및 스크립트와 같은 리소스를 별도의 도메인에서로드합니다.

보안상의 이유로 브라우저는 스크립트 내에서 시작된 크로스 원본 HTTP 요청을 제한합니다. 예를 들어 XMLHttpRequest는 같은 출처 정책을 따릅니다. 따라서 XMLHttpRequest를 사용하는 웹 응용 프로그램은 자체 도메인에 대해서만 HTTP 요청을 만들 수 있습니다. 개발자는 웹 응용 프로그램을 향상시키기 위해 XMLHttpRequest가 도메인 간 요청을 할 수 있도록 브라우저 공급 업체에 요청했습니다.

대한 자세한 내용이 ... 뒤에

[1]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS 
[2]: https://en.wikipedia.org/wiki/Cross-origin_resource_sharing 
[3]: http://www.enable-cors.org 
관련 문제