Como codificar parâmetros de consulta para ir em uma url em Java? Eu sei, isso parece uma pergunta óbvia e já feita.
Existem duas sutilezas das quais não tenho certeza:
- Os espaços devem ser codificados no url como "+" ou como "% 20"? No Chrome, se eu digitar "http://google.com/foo=?bar me", o Chrome muda para ser codificado com% 20
- É necessário / correto codificar dois pontos ":" como% 3B? Chrome não.
Notas:
java.net.URLEncoder.encode
não parece funcionar, parece que a codificação de dados deve ser enviada do formulário. Por exemplo, ele codifica o espaço em+
vez de%20
e codifica dois pontos, o que não é necessário.java.net.URI
não codifica parâmetros de consulta
application/x-www-form-urlencoded
pares de chave / valor. Veja aqui para mais informações: ilegalargumentexception.blogspot.com/2009/12/…