From 84735594f2a889ca00bd746712aecadbc4a2b381 Mon Sep 17 00:00:00 2001 From: Marcus Fihlon Date: Tue, 28 Apr 2026 17:10:34 +0200 Subject: [PATCH] fix(komoot): send explicit GPX accept header for imports Signed-off-by: Marcus Fihlon --- .../fitpub/service/KomootImportService.java | 13 ++++++++----- .../fitpub/service/KomootImportServiceTest.java | 2 ++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/javahippie/fitpub/service/KomootImportService.java b/src/main/java/net/javahippie/fitpub/service/KomootImportService.java index b57f1c4..7f92073 100644 --- a/src/main/java/net/javahippie/fitpub/service/KomootImportService.java +++ b/src/main/java/net/javahippie/fitpub/service/KomootImportService.java @@ -320,14 +320,17 @@ public class KomootImportService { for (URI candidateUri : candidateUris) { try { - ResponseEntity response = restTemplate.exchange( + byte[] body = restTemplate.execute( candidateUri, HttpMethod.GET, - httpEntity, - byte[].class + request -> request.getHeaders().putAll(httpEntity.getHeaders()), + response -> { + if (response.getBody() == null) { + return null; + } + return response.getBody().readAllBytes(); + } ); - - byte[] body = response.getBody(); if (body == null || body.length == 0) { throw new IllegalStateException("Komoot returned an empty GPX response."); } diff --git a/src/test/java/net/javahippie/fitpub/service/KomootImportServiceTest.java b/src/test/java/net/javahippie/fitpub/service/KomootImportServiceTest.java index dd32fea..37d43d7 100644 --- a/src/test/java/net/javahippie/fitpub/service/KomootImportServiceTest.java +++ b/src/test/java/net/javahippie/fitpub/service/KomootImportServiceTest.java @@ -270,6 +270,7 @@ class KomootImportServiceTest { server.expect(once(), requestTo("https://www.komoot.com/api/v007/tours/2880957035.gpx")) .andExpect(method(HttpMethod.GET)) .andExpect(header(HttpHeaders.AUTHORIZATION, authHeader)) + .andExpect(header(HttpHeaders.ACCEPT, "application/gpx+xml, application/xml, text/xml")) .andRespond(withSuccess(""" @@ -359,6 +360,7 @@ class KomootImportServiceTest { server.expect(once(), requestTo("https://www.komoot.com/api/v007/tours/2880957036.gpx")) .andExpect(method(HttpMethod.GET)) .andExpect(header(HttpHeaders.AUTHORIZATION, authHeader)) + .andExpect(header(HttpHeaders.ACCEPT, "application/gpx+xml, application/xml, text/xml")) .andRespond(withSuccess("""