J'utilise le printemps RestTemplate pour faire des appels à un index Apache Solr. Je forme une chaîne de requête manuellement et ne fournit aucune variable d'expansion de modèle {variable_name} intentionnelle. Une partie de la requête est le terme {! Lucene q.op = OR}. Malheureusement, ceci est traité par le moteur URITemplate dans le cadre d'un appel à restTemplate.getForObject.extension d'arrêt lors de l'utilisation UriTemplate Spring RESTTemplate
Idéalement je voudrais arrêter ce traitement. Est-ce qu'il n'y a pas d'échappement des caractères {} pour que URITemplate ne les traite pas? J'ai essayé d'encoder les caractères mais RestTemplate suppose une chaîne non-codée ainsi ils sont codés deux fois et provoquent une 400: Mauvaise Demande sur le backend.
URL Exemple:
http://localhost/solr/select?q= {Lucene q.op = OR!} Se_genbanklocus: * se_gb_create: * se_gb_update: * se_clone_name: * se_sample_tissue: * & facette = true & facet.limit = 3 & facet.mincount = 1 & & facet.field = se_sample_tissue facet.field = se_sample_tissue_name & & facet.field = se_sample_tissue_code facet.field = se_sample_tissue_class & facet.field = se_nuc_acid_type & facet.field = ssam_sample_georegion & start = 0 & rangs = 10
d'accord, je l'ai changé mon approche basée sur vos commentaires – nialloc