Exception de decodificador de datos con error en HttpPostRequestDecoder$ErrorDataDecoderException: Secuencia de escape inválida en cadena.
Cuando el contenido de http contiene el carácter %, io.netty.handler.codec.http.QueryStringDecoder.decodeComponent()
lanzará una IllegalArgumentException
con el mensaje: invalid escape sequence `%" ......
.
¿Eso significa que el contenido de http no puede contener el carácter %?
El parámetro de solicitud es una cadena JSON:
{"discountRate":"10%"}
Los detalles del código no se pueden mostrar;
davy.ai
No, todavía es posible que el contenido http contenga el carácter % siempre y cuando siga la secuencia de escape correcta. El método
io.netty.handler.codec.http.QueryStringDecoder.decodeComponent()
espera cadenas codificadas en formato URL, lo que significa que los caracteres especiales como % se representan mediante su valor codificado en porcentaje (hexadecimal), que es%25
para el carácter %. Por lo tanto, el formato válido para el parámetro de cadena JSON en el ejemplo sería:{"discountRate":"10%25"}
De esta manera, el carácter % se codifica correctamente y se puede decodificar sin generar una
IllegalArgumentException
.