我正在代理服务器后面开发一个 Spring Boot 应用程序。现在我需要连接到外部 API,但我还没有弄清楚要配置什么以使应用程序能够连接到外部 API,我已经尝试使用程序参数传递代理数据并且我已经尝试过在 Java 控制面板中配置代理。如何让应用程序使用代理来访问 API?
问问题
276 次
1 回答
0
你可以使用你的自定义 RestTemplate,这里是一个例子:
YourCustomRestTemplate.java :
class YourCustomRestTemplate implements RestTemplateCustomizer {
@Override
public void customize(RestTemplate restTemplate) {
HttpHost proxy = new HttpHost(PROXY_SERVER_HOST, PROXY_SERVER_PORT);
HttpClient httpClient = HttpClientBuilder.create()
.setRoutePlanner(new DefaultProxyRoutePlanner(proxy) {
@Override
public HttpHost determineProxy(HttpHost target, HttpRequest request, HttpContext context) throws HttpException {
return super.determineProxy(target, request, context);
}
})
.build();
restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory(httpClient));
}
}
当您要构建 RestTemplate 对象以调用 API 时:
RestTemplate restTemplate = new RestTemplateBuilder(new YourCustomRestTemplate()).build();
ResponseEntity<String> responseEntity = restTemplate.getForEntity("__URL__/get", String.class);
于 2021-07-07T09:36:51.467 回答