0

我正在代理服务器后面开发一个 Spring Boot 应用程序。现在我需要连接到外部 API,但我还没有弄清楚要配置什么以使应用程序能够连接到外部 API,我已经尝试使用程序参数传递代理数据并且我已经尝试过在 Java 控制面板中配置代理。如何让应用程序使用代理来访问 API?

4

1 回答 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 回答