mirror of
https://github.com/Prominence/openweathermap-java-api.git
synced 2026-01-09 03:26:45 +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 TimeoutSettings timeoutSettings = new TimeoutSettings();
|
||||
|
||||
private boolean useInsecureConnection = false;
|
||||
|
||||
private HttpClient httpClient = new HttpURLConnectionBasedHttpClient();
|
||||
|
||||
/**
|
||||
@ -66,6 +68,10 @@ public class OpenWeatherMapClient {
|
||||
timeoutSettings.setReadTimeout(readTimeout);
|
||||
}
|
||||
|
||||
public void useInsecureConnection(boolean value) {
|
||||
this.useInsecureConnection = value;
|
||||
}
|
||||
|
||||
public void setHttpClient(HttpClient httpClient) {
|
||||
this.httpClient = httpClient;
|
||||
}
|
||||
@ -159,7 +165,7 @@ public class OpenWeatherMapClient {
|
||||
}
|
||||
|
||||
private RequestSettings getRequestSettings() {
|
||||
final RequestSettings requestSettings = new RequestSettings(apiKey, timeoutSettings);
|
||||
final RequestSettings requestSettings = new RequestSettings(apiKey, timeoutSettings, useInsecureConnection);
|
||||
requestSettings.setHttpClient(httpClient);
|
||||
return requestSettings;
|
||||
}
|
||||
|
||||
@ -67,7 +67,11 @@ public final class RequestExecutor {
|
||||
}
|
||||
|
||||
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('?');
|
||||
String parameters = requestSettings.getRequestParameters().entrySet().stream()
|
||||
|
||||
@ -354,7 +354,7 @@ public enum WeatherCondition {
|
||||
* @return the icon url
|
||||
*/
|
||||
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 final boolean useInsecureConnection;
|
||||
|
||||
private String subdomain = "api";
|
||||
|
||||
private Language language = Language.ENGLISH;
|
||||
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);
|
||||
// make a copy
|
||||
this.timeoutSettings = new TimeoutSettings(timeoutSettings);
|
||||
this.useInsecureConnection = useInsecureConnection;
|
||||
}
|
||||
|
||||
public TimeoutSettings getTimeoutSettings() {
|
||||
@ -74,6 +77,10 @@ public class RequestSettings {
|
||||
this.httpClient = httpClient;
|
||||
}
|
||||
|
||||
public boolean isUseInsecureConnection() {
|
||||
return useInsecureConnection;
|
||||
}
|
||||
|
||||
public String getSubdomain() {
|
||||
return subdomain;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user