2 votes

Passage de caractères spéciaux comme paramètres de requête dans une application Spring RESTful

Je veux passer " & ; \n ? etc. comme caractères dans mon paramètre de requête. Mais comme ils ont une signification spéciale dans le protocole HTTP, j'ai l'impression que je dois d'une manière ou d'une autre "échapper" à ces caractères pour désactiver leur fonctionnalité.

Comment puis-je faire cela si je veux les passer comme une séquence normale de chaînes dans un paramètre de requête d'une application RESTful Spring boot ?

J'ai pu remplacer le \n avec le %0A comme certaines réponses ici l'ont suggéré, mais je suppose que je dois faire quelques corrections supplémentaires. Voici ma chaîne de caractères :-

"package drl ; %0A import com.example.demo.Apple ; %0A dialecte 'mvel' %0A rule Apple_is_green_yall %0A when %0A $person : Apple(color == \"Green\") %0A then %0A System.out.println(\"Appl green yo guys \") %0A end"

Merci !

2voto

Jake S. Points 67

Les données doivent être codées par URL. Vous pouvez utiliser java.net.URLEncoder pour remplacer tous les caractères spéciaux par les caractères appropriés %XY représentation.

( https://docs.oracle.com/javase/7/docs/api/java/net/URLEncoder.html )

Comme ça :

import java.net.URLEncoder
[...]
String input = "#your $data %here"
// You can use other charsets but UTF-8 is recommended
String encoded = URLEncoder.encode(input, StandardCharsets.UTF_8);

Cet exemple prendra la chaîne "#votre $data %here" et produira "%23your%20%24data%20%25here".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X