mirror of
https://github.com/Prominence/openweathermap-java-api.git
synced 2026-01-10 20:06:44 +03:00
Adjusted to use HTTPS protocol by default. Added possibility to change request protocol.
This commit is contained in:
parent
fb2e0e01be
commit
b83b121e90
@ -48,6 +48,8 @@ public class OpenWeatherMapClient {
|
|||||||
private final String apiKey;
|
private final String apiKey;
|
||||||
private final TimeoutSettings timeoutSettings = new TimeoutSettings();
|
private final TimeoutSettings timeoutSettings = new TimeoutSettings();
|
||||||
|
|
||||||
|
private boolean useInsecureConnection = false;
|
||||||
|
|
||||||
private HttpClient httpClient = new HttpURLConnectionBasedHttpClient();
|
private HttpClient httpClient = new HttpURLConnectionBasedHttpClient();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -66,6 +68,10 @@ public class OpenWeatherMapClient {
|
|||||||
timeoutSettings.setReadTimeout(readTimeout);
|
timeoutSettings.setReadTimeout(readTimeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void useInsecureConnection(boolean value) {
|
||||||
|
this.useInsecureConnection = value;
|
||||||
|
}
|
||||||
|
|
||||||
public void setHttpClient(HttpClient httpClient) {
|
public void setHttpClient(HttpClient httpClient) {
|
||||||
this.httpClient = httpClient;
|
this.httpClient = httpClient;
|
||||||
}
|
}
|
||||||
@ -159,7 +165,7 @@ public class OpenWeatherMapClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private RequestSettings getRequestSettings() {
|
private RequestSettings getRequestSettings() {
|
||||||
final RequestSettings requestSettings = new RequestSettings(apiKey, timeoutSettings);
|
final RequestSettings requestSettings = new RequestSettings(apiKey, timeoutSettings, useInsecureConnection);
|
||||||
requestSettings.setHttpClient(httpClient);
|
requestSettings.setHttpClient(httpClient);
|
||||||
return requestSettings;
|
return requestSettings;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -67,7 +67,11 @@ public final class RequestExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String buildRequestUrl() {
|
private String buildRequestUrl() {
|
||||||
StringBuilder requestUrlBuilder = new StringBuilder(OWM_URL_BASE.replace("SUBDOMAIN", requestSettings.getSubdomain()));
|
String baseUrl = OWM_URL_BASE.replace("SUBDOMAIN", requestSettings.getSubdomain());
|
||||||
|
if (requestSettings.isUseInsecureConnection()) {
|
||||||
|
baseUrl = baseUrl.replace("https", "http");
|
||||||
|
}
|
||||||
|
StringBuilder requestUrlBuilder = new StringBuilder(baseUrl);
|
||||||
requestUrlBuilder.append(requestSettings.getUrlAppender());
|
requestUrlBuilder.append(requestSettings.getUrlAppender());
|
||||||
requestUrlBuilder.append('?');
|
requestUrlBuilder.append('?');
|
||||||
String parameters = requestSettings.getRequestParameters().entrySet().stream()
|
String parameters = requestSettings.getRequestParameters().entrySet().stream()
|
||||||
|
|||||||
@ -354,7 +354,7 @@ public enum WeatherCondition {
|
|||||||
* @return the icon url
|
* @return the icon url
|
||||||
*/
|
*/
|
||||||
public static String getIconUrl(String iconId) {
|
public static String getIconUrl(String iconId) {
|
||||||
return "http://openweathermap.org/img/w/" + iconId + ".png";
|
return "https://openweathermap.org/img/w/" + iconId + ".png";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -51,15 +51,18 @@ public class RequestSettings {
|
|||||||
|
|
||||||
private HttpClient httpClient;
|
private HttpClient httpClient;
|
||||||
|
|
||||||
|
private final boolean useInsecureConnection;
|
||||||
|
|
||||||
private String subdomain = "api";
|
private String subdomain = "api";
|
||||||
|
|
||||||
private Language language = Language.ENGLISH;
|
private Language language = Language.ENGLISH;
|
||||||
private UnitSystem unitSystem = UnitSystem.STANDARD;
|
private UnitSystem unitSystem = UnitSystem.STANDARD;
|
||||||
|
|
||||||
public RequestSettings(String apiKey, TimeoutSettings timeoutSettings) {
|
public RequestSettings(String apiKey, TimeoutSettings timeoutSettings, boolean useInsecureConnection) {
|
||||||
this.putRequestParameter(API_KEY_PARAM_NAME, apiKey);
|
this.putRequestParameter(API_KEY_PARAM_NAME, apiKey);
|
||||||
// make a copy
|
// make a copy
|
||||||
this.timeoutSettings = new TimeoutSettings(timeoutSettings);
|
this.timeoutSettings = new TimeoutSettings(timeoutSettings);
|
||||||
|
this.useInsecureConnection = useInsecureConnection;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TimeoutSettings getTimeoutSettings() {
|
public TimeoutSettings getTimeoutSettings() {
|
||||||
@ -74,6 +77,10 @@ public class RequestSettings {
|
|||||||
this.httpClient = httpClient;
|
this.httpClient = httpClient;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isUseInsecureConnection() {
|
||||||
|
return useInsecureConnection;
|
||||||
|
}
|
||||||
|
|
||||||
public String getSubdomain() {
|
public String getSubdomain() {
|
||||||
return subdomain;
|
return subdomain;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user