Codificação de parâmetros de consulta URL em Java: como fazer corretamente?
Olá a todos! Sou novo em Java e estou escrevendo uma pequena aplicação que envia requisições HTTP para uma API externa. Preciso passar parâmetros na query string, mas me deparei com um problema: alguns parâmetros contêm caracteres especiais, como espaços, cirílico, sinais &, =, etc.
Por exemplo, um dos parâmetros é uma consulta de pesquisa: "Java & Spring Framework". Se eu simplesmente adicioná-lo à URL, recebo um erro, porque o caractere '&' é interpretado como separador de parâmetros.
Tentei usar `URLEncoder.encode()`, mas os resultados parecem estranhos. Por exemplo, o espaço se transforma em '+', em vez de '%20'. Além disso, não tenho certeza se preciso codificar a URL inteira ou apenas os valores dos parâmetros. Aqui está um exemplo do meu código:
```java
String query = "Java & Spring Framework";
String url = "https://api.example.com/search?q=" + URLEncoder.encode(query, "UTF-8");
```
No final, fica algo como `https://api.example.com/search?q=Java+%26+Spring+Framework`. Isso está correto?