如何在 springboot RestTemplate 交换方法的 url 中对'?'进行编码?



我正在springboot中构建一个应用程序。我有这个代码块:

String testUrl = "http://example.com/filter1/filter2/Art: Is It Value?";
ExampleResources<Test> exampleResources =
restTemplate.exchange(testUrl, HttpMethod.GET, null, new 
ParameterizedTypeReference<ExampleResources<Test>>() {
}).getBody();

它返回空列表。但如果我在Postman中请求url,我会得到正确的结果。经过一段时间的测试,我发现问号("?"(引起了问题。我该如何处理?

我认为您可以使用URLEncoder.encode方法对有问题的部分进行编码。

查看下面的示例代码。

String url = "http://example.com/filter1/filter2/";
String value = "Art: Is It Value?";
String newValue = URLEncoder.encode(value, StandardCharsets.UTF_8.toString());
String newUrl = url + newValue;

因此,您的newUrl将类似于下面的内容。

http://example.com/filter1/filter2/Art%3A+Is+It+Value%3F

看看这是否有助于解决您的问题。

相关内容

最新更新