我有这个网址:
bookManag/book?name=world and war #2&field=1
我传入名称参数 - world and war #2 问题是在 # 之后所有内容都被切断并且下一个字段参数没有出现。好的,我找到了摆脱这种情况的方法并将哈希替换为 %23
bookManag/book?name=world and war %232&field=1
但主要问题不是这个,我试图通过 ResponseEntity 得到响应
String url = "http://localhost:8081/bookManag/book?name=world and war %232&field=1";
org.springframework.http.ResponseEntity result = restTemplate.exchange(url, HttpMethod.GET, entity, getRespType(), params);
之后,spring 内部已经发生错误,而不是我正确的 url,spring 将其重新制作为
"http://localhost:8081/bookManag/book?name=world and war %20%25232&field=1"
用 %2523 替换 %23 最终会给出错误的结果。如何解决这个问题?
要对 URL 进行编码,您需要使用URLEncoder,尤其是它的 encode 方法。您只需使用哈希对 URL 的一部分进行编码
结果,您将得到一个类似 的字符串
http://localhost:8081/bookManag/book?name=world+and+war+%232&field=1,这是一个非常有效的 URL