记一个restTemplate get请求的坑

377 阅读1分钟

restTemplate 使用getForObject()直接传url,如果参数包含&符号会不会转换成%26,识别成分割符传递,导致获取不到正确的数据,手动写%26 会把%符号转化成%25 (具体debug进函数内部查看)

因此要使用
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://s")
        .queryParam("fields","view_link");

URI uri = builder.build().encode().toUri();
HttpEntity<MyClass> response = restTemplate.exchange(uri,HttpMethod.GET,null,MyClass.class);        

发送url