取决于您使用的Spring版本。如果您的版本太旧,例如版本3.0.6.RELEASE,那么您将没有UriComponentsBuilderspring-web jar那样的便利。
您需要防止Spring RestTemplate对URL进行编码。您可以做的是:
import java.net.URI;StringBuilder builder = new StringBuilder("http://");builder.append(endpointUrl);builder.append("?method=logout&session=");builder.append(sessionId);URI uri = URI.create(builder.toString());restTemplate.getForObject(uri, Object.class);我使用Spring 3.0.6.RELEASE版本对其进行了测试,并且可以正常工作。
简而言之,不要使用
restTemplate.getForObject(String url,Object.class),而要使用
restTemplate.getForObject(java.net.URI uri, Object.class)
请参阅Spring文档的rest-resttemplate-uri部分



