use of wslite.http.HTTPClient in project axelor-open-suite by axelor.
the class ECBCurrencyConversionService method validateAndGetRate.
@Override
public Float validateAndGetRate(int dayCount, Currency currencyFrom, Currency currencyTo, LocalDate date) throws AxelorException {
try {
HTTPResponse response = null;
if (dayCount < 8) {
HTTPClient httpclient = new HTTPClient();
HTTPRequest request = new HTTPRequest();
Map<String, Object> headers = new HashMap<>();
headers.put("Accept", "application/json");
request.setHeaders(headers);
URL url = new URL(this.getUrlString(date, currencyFrom.getCode(), currencyTo.getCode()));
// URL url = new URL(String.format(WSURL,currencyFrom.getCode()));
LOG.trace("Currency conversion webservice URL: {}", new Object[] { url.toString() });
request.setUrl(url);
request.setMethod(HTTPMethod.GET);
response = httpclient.execute(request);
// JSONObject json = new JSONObject(response.getContentAsString());
LOG.trace("Webservice response code: {}, response message: {}", response.getStatusCode(), response.getStatusMessage());
if (response.getStatusCode() != 200)
return -1f;
if (response.getContentAsString().isEmpty()) {
return this.validateAndGetRate((dayCount + 1), currencyFrom, currencyTo, date.minus(Period.ofDays(1)));
} else {
return this.getRateFromJson(currencyFrom, currencyTo, response);
}
} else {
throw new AxelorException(TraceBackRepository.CATEGORY_CONFIGURATION_ERROR, String.format(I18n.get(IExceptionMessage.CURRENCY_7), date.plus(Period.ofDays(1)), appBaseService.getTodayDate(Optional.ofNullable(AuthUtils.getUser()).map(User::getActiveCompany).orElse(null))));
}
} catch (Exception e) {
throw new AxelorException(TraceBackRepository.CATEGORY_CONFIGURATION_ERROR, I18n.get(IExceptionMessage.CURRENCY_6));
}
}
use of wslite.http.HTTPClient in project axelor-open-suite by axelor.
the class FixerCurrencyConversionService method callApiBaseEuru.
private HTTPResponse callApiBaseEuru(Currency currencyFrom, Currency currencyTo, LocalDate date) throws MalformedURLException {
HTTPClient httpclient = new HTTPClient();
HTTPRequest request = new HTTPRequest();
URL url = null;
Map<String, Object> headers = new HashMap<>();
headers.put("Accept", "application/json");
request.setHeaders(headers);
if (currencyFrom != null && currencyTo != null) {
if (isRelatedConversion) {
url = new URL(this.getUrlString(date, EURO_CURRENCY_CODE, currencyFrom.getCode(), currencyTo.getCode()));
} else {
url = new URL(this.getUrlString(date, currencyFrom.getCode(), currencyTo.getCode()));
}
} else {
url = new URL(this.getUrlString(date, EURO_CURRENCY_CODE));
}
LOG.trace("Currency conversion webservice URL: {}", new Object[] { url.toString() });
request.setUrl(url);
request.setMethod(HTTPMethod.GET);
return httpclient.execute(request);
}
Aggregations