Avatar ·

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?