Hallo zusammen,
mich ärgert grad eine API. Ich möchte prüfen ob es einen Wert schon gibt, dafür stellt die API folgenden Endpoint zur Verfügung:
/name?title=<name>
Nun enthält mein name einen Slash welcher nicht encoded wird, daher bekomme ich ein falsches Ergebnis.
Folgend meine (simplifizierte) GET Methode:
Gesendet wird: https:/domain.de/admin/api/name?Hose/Unterhose
Es müsste aber sein: https:/domain.de/admin/api/name?Hose%2FUnterhose
Wenn ich den String mit .replaceAll("/","%2F") ersetze, wird das Prozentzeichen widerum maskiert und die Ausgabe stimmt ebenfalls nich.
Wenn ein Leerzeichen im Namen vorkommt, wird das korrekt mit %20 maskiert, die Slash hingegen nich. Hat jemand eine Idee wie ich Resttemplate korrekt konfigurieren, damit das korrekt maskiert/encoded?
mich ärgert grad eine API. Ich möchte prüfen ob es einen Wert schon gibt, dafür stellt die API folgenden Endpoint zur Verfügung:
/name?title=<name>
Nun enthält mein name einen Slash welcher nicht encoded wird, daher bekomme ich ein falsches Ergebnis.
Folgend meine (simplifizierte) GET Methode:
Java:
public Collection getCollectionByName(String name){
String serviceURL = "https:/domain.de/admin/api/name" ;
UriComponentsBuilder uriBuilder = UriComponentsBuilder.fromHttpUrl(serviceURL)
.queryParam("title", name);
//Auth...
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<Collection> response = restTemplate.exchange(uriBuilder.toUriString(), HttpMethod.GET, entity, Collection.class);
return response.getBody().getSmartCollection();
}
Gesendet wird: https:/domain.de/admin/api/name?Hose/Unterhose
Es müsste aber sein: https:/domain.de/admin/api/name?Hose%2FUnterhose
Wenn ich den String mit .replaceAll("/","%2F") ersetze, wird das Prozentzeichen widerum maskiert und die Ausgabe stimmt ebenfalls nich.
Wenn ein Leerzeichen im Namen vorkommt, wird das korrekt mit %20 maskiert, die Slash hingegen nich. Hat jemand eine Idee wie ich Resttemplate korrekt konfigurieren, damit das korrekt maskiert/encoded?