From 896f14d212d86ec47d37a17bb7ba6b73afea8a93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Vigui=C3=A9?= <92853058+viguice@users.noreply.github.com> Date: Fri, 30 Jun 2023 11:30:56 +0200 Subject: [PATCH] Workaround when proxy returns HTTP_PROXY_AUTH code Force first to connect to http (google.com) and do a second attempt to connect to the original URL. HTTP_PROXY_AUTH code might be returned when the app tries to connect to https but might work if it has connected first to a http website. --- .../bancaditalia/oss/sdmx/client/RestSdmxClient.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/JAVA/src/main/java/it/bancaditalia/oss/sdmx/client/RestSdmxClient.java b/JAVA/src/main/java/it/bancaditalia/oss/sdmx/client/RestSdmxClient.java index 8719194..0a56ee9 100644 --- a/JAVA/src/main/java/it/bancaditalia/oss/sdmx/client/RestSdmxClient.java +++ b/JAVA/src/main/java/it/bancaditalia/oss/sdmx/client/RestSdmxClient.java @@ -400,7 +400,19 @@ protected final T runQuery(Parser parser, URL query, String acceptHeader, } code = conn instanceof HttpURLConnection ? ((HttpURLConnection) conn).getResponseCode() : HttpURLConnection.HTTP_OK; + if (code == HttpURLConnection.HTTP_PROXY_AUTH) + { + LOGGER.fine("Error with proxy. Second attempt after forcing acces to http website in first place."); + URI uritest= new URI("http://google.com"); + URL urltest = uritest.toURL(); + conn = urltest.openConnection(proxy); + ((HttpURLConnection) conn).setRequestMethod("GET"); + code = conn instanceof HttpURLConnection ? ((HttpURLConnection) conn).getResponseCode() : HttpURLConnection.HTTP_OK; + conn = url.openConnection(proxy); + ((HttpURLConnection) conn).setRequestMethod("GET"); + code = conn instanceof HttpURLConnection ? ((HttpURLConnection) conn).getResponseCode() : HttpURLConnection.HTTP_OK; + } if (isRedirection(code)) { URL redirection = getRedirectionURL(conn, code);