diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/wms/WmsServer.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/wms/WmsServer.java index d0731fc7..703f637b 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/wms/WmsServer.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/wms/WmsServer.java @@ -428,15 +428,15 @@ public FeatureInfoResponse getMapFeatures(String collectionId, FeatureRequest re List urls = createMapFeatureQueryUrl(mapServerUrl.get(), collectionId, request); // Try one by one, we exit when any works for (String url : urls) { - ResponseEntity response = restTemplateUtils.handleRedirect(url, restTemplate.getForEntity(url, String.class, Collections.emptyMap()), String.class, pretendUserEntity); + ResponseEntity response = restTemplateUtils.handleRedirect(url, restTemplate.exchange(url, HttpMethod.GET, pretendUserEntity, String.class), String.class, pretendUserEntity); if (response.getStatusCode().is2xxSuccessful()) { // Now try to unify the return if (MediaType.TEXT_HTML.isCompatibleWith(response.getHeaders().getContentType())) { String html = response.getBody(); // This is a simple trick to check if the html is in fact empty body, if empty // try another url - if (html != null && html.contains("
")) { - return FeatureInfoResponse.builder().html(response.getBody()).build(); + if (html != null && (html.contains("class=\"feature\"") || html.contains("class=\"featureInfo\""))) { + return FeatureInfoResponse.builder().html(html).build(); } } else if (MediaType.APPLICATION_XML.isCompatibleWith(response.getHeaders().getContentType())) { FeatureInfoResponse r = xmlMapper.readValue(response.getBody(), FeatureInfoResponse.class);