¿Cómo se codifican los parámetros de consulta para ir en una url en Java? Lo sé, esto parece una pregunta obvia y ya hecha.Codificación de parámetros de consulta de URL en Java
Hay dos sutilezas que no estoy seguro de:
- En caso de espacios se van a codificar en la URL como "+" o como "% 20"? En Chrome, si escribo "http://google.com/foo=?bar me", Chrome lo cambia para que se codifique con% 20
- ¿Es necesario/correcto codificar dos puntos ":" como% 3B? Chrome no.
Notas:
java.net.URLEncoder.encode
no parece funcionar, parece ser para codificar datos para ser formulario enviado. Por ejemplo, codifica espacio como+
en lugar de%20
, y codifica dos puntos, que no es necesario.java.net.URI
no codifica parámetros de consulta
Esta pregunta parece útil: http://stackoverflow.com/questions/444112/how-do-i- encode-uri-p arameter-values –
la estructura de la parte de consulta depende del servidor, aunque la mayoría espera pares de clave/valor 'application/x-www-form-urlencoded'. Consulte aquí para obtener más información: http://illegalargumentexception.blogspot.com/2009/12/java-safe-character-handling-and-url.html – McDowell