Codificación de parámetros de consulta de URL en Java
¿Cómo se codifican los parámetros de consulta para ir a una url en Java? Lo sé, esto parece una pregunta obvia y ya formulada.
Hay dos sutilezas de las que no estoy seguro:
¿Deben codificarse los espacios en la URL como "+" o como "% 20"? En Chrome, si escribo "http://google.com/foo=?bar me", Chrome cambia su codificación con% 20 ¿Es necesario / correcto codificar los dos puntos ":" como% 3B? Chrome no lo hace.Notas:
java.net.URLEncoder.encode
no parece funcionar, parece ser que los datos de codificación se envían de forma. Por ejemplo, codifica el espacio como+
en lugar de%20
, y codifica dos puntos que no es necesario.java.net.URI
no codifica los parámetros de consulta