概述:
以下代码负责调用外部REST服务。外部服务重定向到页面。
restTemplate.exchange(
"http://localhost:8080/<endpoint address>",
GET,
new HttpEntity<String>(headers),
String.class);
问题:
响应回复为纯HTML文本,这是错误的。 预期的一个是重定向到外部服务已被重定向到的页面。
*有没有办法解决这个问题?
答案 0 :(得分:0)
我使用 HttpURLConnection 代替 RestTemplate 找到了解决方案:
HttpURLConnection con = getHttpURLConnection();
try {
con.setInstanceFollowRedirects(true);
con.setRequestProperty(requestHeaderName, requestHeaderValue);
HttpURLConnection.setFollowRedirects(true);
con.getResponseCode();
verifyResponseCode(con);
String redirectPath = con.getURL().toString();
return new RedirectView(redirectPath);
} catch (RestClientException e) {
log.error(e.getMessage(), e);
throw e;
}
在getHttpURLConnection中:
HttpURLConnection getHttpURLConnection() throws Exception {
URL securedUrl = new URL("URL");
return (HttpURLConnection) securedUrl.openConnection();
}
现在它对我有用。 con.getURL()从外部服务返回重定向的URL,现在我可以访问它。