Refactor PrestashopClient to enhance header configuration and improve query parameter encoding

This commit is contained in:
Vincent Guillet
2025-12-02 17:23:31 +01:00
parent 177eb2eb5c
commit db8085c0aa

View File

@@ -30,7 +30,17 @@ public class PrestashopClient {
.encodeToString((apiKey + ":").getBytes(StandardCharsets.UTF_8));
this.client = RestClient.builder()
.defaultHeader(HttpHeaders.AUTHORIZATION, "Basic " + basicAuth)
.baseUrl(baseUrl)
.defaultHeaders(headers -> {
// Authentification PrestaShop via Basic Auth : key en user, mdp vide
headers.setBasicAuth(apiKey, "");
// IMPORTANT : User-Agent “neutre”
headers.set(HttpHeaders.USER_AGENT, "curl/8.10.1");
// Accept JSON
headers.setAccept(List.of(MediaType.APPLICATION_JSON, MediaType.ALL));
})
.build();
log.info("[PrestaShop] Base URL = {}", baseUrl);
@@ -58,8 +68,10 @@ public class PrestashopClient {
if (values == null || values.isEmpty()) continue;
for (String rawValue : values) {
if (first) { sb.append('?'); first = false; }
else sb.append('&');
if (first) {
sb.append('?');
first = false;
} else sb.append('&');
// encode la clé
sb.append(URLEncoder.encode(key, StandardCharsets.UTF_8));