es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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;

Tags:  ,

Answer

  1. Avatar for 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.

Comments are closed.