2017-05-10 6 views
1

Ceci est mon contrat,Feindre - chemin encode URL params

@RequestLine("GET /products/{id}") 
@Headers({"Content-Type: application/json"}) 
ApiResponse getProduct(@Param("id") String productId) throws Exception; 

Je veux aller chercher le produit avec id = "a/b",

Si j'envoyer cela comme un param à getProduct("a/b")

l'URL qui est formé est http://api/products/a/b et je reçois une erreur 404 au lieu de l'URL doit être http://api/products/a%2Fb

y at-il un moyen de contourner cela?

+0

J'utilise \t \t \t io.github.openfeign \t \t \t Feign-core \t \t \t 9.5.0 \t \t NitishDeshpande

Répondre

1

Une simple config a fait,

@RequestLine("GET /products/{id}", decodeSlash = false) 
@Headers({"Content-Type: application/json"}) 
ApiResponse getProduct(@Param("id") String productId) throws Exception; 

Le chemin param obtenait codé correctement mais le RequestTemplate a été décode l'URL à nouveau (decodeSlash = true par défaut) avant d'envoyer la demande qui a été l'origine du problème.