프록시 서버에 연결하려고하지만 자격 증명을 제공하지 않으므로 407을 포착하여 사용자에게 creds를 제공해야한다고 알립니다.java 프록시 인증 IOException이 발생하지 않습니다.
나는이 오류를 저의 평생 동안 잡을 수 없습니다.
Socket socket = null;
InetSocketAddress addr = new InetSocketAddress(host, port);
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr);
try
{
socket = new Socket(proxy);
socket.connect(addr, getUrlConnectTimeout());
}
catch (IOException ioe)
{
logger.info("IOE");
}
코드를 단계적으로 수행하면 내부 오류 "절대로 듣지 않아야합니다."가 표시됩니다. HttpConnectionSocketImpl.class
private void doTunneling(HttpURLConnection conn) {
try {
doTunneling.invoke(conn);
} catch (ReflectiveOperationException x) {
throw new InternalError("Should not reach here", x);
}
}
내에서 스택 추적은 이오 예외를 표시하고 인증이 필요하다는 것을 나타냅니다.
왜 내 try catch 블록이 연결 시도가 이루어질 때이 예외를 포착하지 못하고 있는지 이해할 수 없습니다.
발생 원인 : java.io.IOException : 프록시를 통해 터널링 할 수 없습니다. 프록시에서 "HTTP/1.1 407 프록시 인증이 필요합니다 (Forefront TMG에서 요청을 수행 할 수있는 권한이 필요합니다. 웹 프록시 필터에 대한 액세스가 거부되었습니다.)" at sun.net.www.protocol.http.HttpURLConnection.doTunneling (HttpURLConnection.java : 2,084) 19 ... 는 더
나는 그것을 위해 버그를 제출했습니다. "귀하의 보고서를 검토 한 후 내부 검토 ID : 9047150" – user2198875