私はプロキシサーバーに接続しようとしていますが、資格情報を提供しないため、407を捕まえて、ユーザーに信用を提供する必要があることを伝えます。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);
}
}
スタックトレースはIo例外を示し、authが必要であることを示します。
なぜ私のtry catchブロックが接続の試行が行われているときにこの例外をキャッチしていないのか分かりません。
原因:java.io.IOException:プロキシをトンネルできません。プロキシが返す "HTTP/1.1 407プロキシ認証が必要(Forefront TMGで要求を満たすための承認が必要です.Webプロキシフィルタへのアクセスが拒否されています)" at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java :2084) ... 19より
私はそれのためのバグを提出しました。 "お客様のレポートをレビューし、内部レビューID:9047150を割り当てました。 – user2198875