From db8085c0aa49054781a22fb83d53028c484ce57b Mon Sep 17 00:00:00 2001 From: Vincent Guillet Date: Tue, 2 Dec 2025 17:23:31 +0100 Subject: [PATCH] Refactor PrestashopClient to enhance header configuration and improve query parameter encoding --- .../api/service/PrestashopClient.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/fr/gameovergne/api/service/PrestashopClient.java b/api/src/main/java/fr/gameovergne/api/service/PrestashopClient.java index ff5ea9a..3f8bd0f 100644 --- a/api/src/main/java/fr/gameovergne/api/service/PrestashopClient.java +++ b/api/src/main/java/fr/gameovergne/api/service/PrestashopClient.java @@ -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));