Using RestTemplate, how to send the request to a proxy first so I can use my junits with JMeter?

后端 未结 5 1781
夕颜
夕颜 2020-12-02 22:06

I have a web service running on my dev box implemented using Spring-MVC 3.0. I have various JUnits that test against that service using RestTemplate. What I would like to do

5条回答
  •  不知归路
    2020-12-02 22:51

    Spring has a good documentation using a Customizer to determine different proxy

    public class ProxyCustomizer implements RestTemplateCustomizer {
    
        @Override
        public void customize(RestTemplate restTemplate) {
            final String proxyUrl = "proxy.example.com";
            final int port = 3128;
    
            HttpHost proxy = new HttpHost(proxyUrl, port);
            HttpClient httpClient = HttpClientBuilder.create().setRoutePlanner(new DefaultProxyRoutePlanner(proxy) {
                @Override
                protected HttpHost determineProxy(HttpHost target, HttpRequest request, HttpContext context)
                        throws HttpException {
                    if (target.getHostName().equals("gturnquist-quoters.cfapps.io")) {
                        return super.determineProxy(target, request, context);
                    }
                    return null;
                }
            }).build();
            restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory(httpClient));
    
        }
    
    }
    

    and the call to apply the ProxyCustomizer is

    @Bean
    public RestTemplate restTemplate(RestTemplateBuilder builder) {
        return builder.additionalCustomizers(new ProxyCustomizer()).build();
    }
    

提交回复
热议问题