春季休息模板字符编码"#"



我真的很难处理"#"的一些字符编码问题。我正在尝试从url"url/path/#"中"获取",在参数前面加上"#"。终结点需要"#"或"%23"的字符编码值。但是,RestTemplate要么是a(不编码"#",这会导致API出现其他异常(API确实想要"%23"而不是"#"(,要么是b(双重编码"%"。我如何使用RestTemplate来实际发送"%23".

代码非常简单:

restTemplate.exchange(url, HttpMethod.GET, httpEntityWithSomeAuthHeader, 
new ParameterizedTypeReference<SomeObject>() {}); 

url如上所述。。。

谢谢!

希望不要迟到;(

试试这个:

URI uri = new URI(url);
restTemplate.exchange(uri, HttpMethod.GET, httpEntityWithSomeAuthHeader, 
new ParameterizedTypeReference<SomeObject>() {}); 

重要的是,在url参数中使用%23。似乎如果你使用#(带字符串或uri(,它会在。。。但对于%23和"新URI",它将其放入查询中(URI内部为%23(,服务器解码为#。

希望有帮助;(

PD:一位同事记得我https://xkcd.com/979/当我们看到你回答的问题时;(现在我们有了答案

相关内容

  • 没有找到相关文章

最新更新