Avatar ·

Java中URL查询参数的编码:如何正确操作?

大家好!我是Java新手,正在编写一个向外部API发送HTTP请求的小应用。我需要传递查询字符串中的参数,但遇到了问题:某些参数包含特殊字符,如空格、西里尔字母、&、=等。 例如,其中一个参数是搜索查询:"Java & Spring Framework"。如果直接将其添加到URL中,会出现错误,因为'&'字符会被解释为参数分隔符。 我尝试使用`URLEncoder.encode()`,但结果看起来很奇怪。例如,空格变成了'+',而不是'%20'。此外,我不确定应该对整个URL进行编码,还是只对参数值进行编码。以下是我的代码示例: ```java String query = "Java & Spring Framework"; String url = "https://api.example.com/search?q=" + URLEncoder.encode(query, "UTF-8"); ``` 最终得到类似`https://api.example.com/search?q=Java+%26+Spring+Framework`的结果。这样正确吗?