in src/main/java/com/epam/dep/esp/common/web/WebUtils.java [63:113]
private HttpURLConnection getConnection(int count) throws MalformedURLException, IOException, URISyntaxException, HttpException {
URIBuilder builder = new URIBuilder(path);
if (params != null) {
for (Map.Entry<String, String> item : params.entrySet()) {
builder.addParameter(item.getKey(), item.getValue());
}
}
URL serverAddress = builder.build().toURL();
HttpURLConnection conn = (HttpURLConnection) serverAddress.openConnection();
conn.setConnectTimeout(timeout);
conn.setReadTimeout(timeout);
if (password != null && login != null && password.length() > 0 && login.length() > 0) {
conn.setRequestProperty("Authorization", "Basic " + Base64.getEncoder().encodeToString((login + ":" + password).getBytes()));
}
if (headers != null) {
for (Map.Entry<String, String> item : headers.entrySet()) {
conn.setRequestProperty(item.getKey(), item.getValue());
}
}
conn.setRequestMethod(method);
if ((method.equalsIgnoreCase("post")
|| method.equalsIgnoreCase("put"))
&& payload != null) {
if (payload instanceof String) {
conn.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream(), StandardCharsets.UTF_8);
writer.write((String) payload);
writer.close();
}
}
if (count == 0) {
throw new HttpException("Can't find path: " + serverAddress);
}
switch (conn.getResponseCode()) {
case 302:
case 301:
String redirectTo = conn.getHeaderField("location");
conn.disconnect();
path = redirectTo;
conn = getConnection(count - 1);
break;
}
return conn;
}