【发布时间】:2019-12-03 14:55:43
【问题描述】:
在与 Micronaut 进行了很多斗争以取消我们的代理之后,我想到了编写一个用于相同目的的 Spring Boot 应用程序。
对于 Spring Boot,HTTP 代理配置非常简单,并且有很多示例可用。我提出了这个例子:
application.properties
generic.proxyHost = my.corporateproxy.net
generic.proxyPort = 3128
MyController.java
@Value("${generic.proxyHost}")
private String proxyHost;
@Value("${generic.proxyPort}")
private Integer proxyPort;
@GetMapping("/proxy")
public HttpStatus getApiWithProxy(){
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
InetSocketAddress address = new InetSocketAddress(proxyHost, proxyPort);
Proxy proxy = new Proxy(Proxy.Type.HTTP, address);
factory.setProxy(proxy);
RestTemplate restTemplate = new RestTemplate();
restTemplate.setRequestFactory(factory);
ResponseEntity<String> response = restTemplate.getForEntity("https://any.api.returningstring.net/", String.class);
return response.getStatusCode();
}
这种方式确实有效,我尝试将此列表转换为 Micronaut 扩展,例如 HttpClientConfiguration。没有任何成功。
是否有任何解决方案可以设置代理并将其以编程方式传递给 Micronaut 中的 HttpClient?
P.S:这个 Spring Boot 应用程序在我们的企业云 (Kubernetes) 中作为 Docker 容器启动。 micronaut 必须更换它,但我们坚持如何设置代理。
【问题讨论】:
-
不一样。例如,这里是关于为生产环境动态设置代理的。
标签: java spring-boot micronaut