2017-04-13 1 views
2

Je fais une demande de get à quelque chose de semblable à ce qui suit: https://endpoint.com/path/to/what//want?param=valueComment faire pour empêcher la double barre oblique d'être codée?

Il me manque intentionnellement une valeur entre « quoi » et « veulent » pour tester qui lui donne une erreur 404. Le problème est que, pour une raison quelconque, il est encodée avant la main et ce qui est envoyé par est: https://endpoint.com/path/to/what%2f%2fwant?param=value

qui provoque 400 à retourner parce que c'est juste une mauvaise demande. Je sais que je peux désactiver l'encodage, mais il faudra parfois coder la combinaison param/valeur, ce que je ne voudrais pas faire.

J'ai essayé de former la chaîne de connexion en utilisant la concaténation simple et StringBuilder mais cela n'a fait aucune différence.

Des conseils ou d'autres choses à essayer seraient appréciés.

Répondre

1

Votre seule option est de désactiver l'URL en utilisant le codage:

given().urlEncoding(false). .. 

puis URL encode les parties que vous souhaitez url encode manuellement. REST Assured ne peut pas toujours deviner correctement et c'est le cas.

+0

Ouais j'ai pensé et c'est ce que je fais en ce moment. Je n'arrive pas à comprendre pourquoi la double barre oblique doit être encodée. Je suppose que je pourrais ajouter un espace entre les deux pour l'empêcher. – canpan14

+0

C'est une bonne question et je ne peux pas vous donner une bonne réponse. Dans mon esprit, il pourrait être un bug (alors n'hésitez pas à contribuer :)) – Johan