我在使用Spring-MVC 3.0实现的开发箱上运行了一个Web服务。我有各种使用RestTemplate针对该服务进行测试的JUnit。我想做的就是让JMeter在运行它们时拾取那些JUnits REST请求。但是,要做到这一点,我需要让Spring的RestTemplate将它们发送到运行JMeter的代理中。所以,问题是,我该怎么做?
我用CXF及其http:conduit和http:client东西做了类似的事情,但是我真的不知道如何用Spring-MVC做到这一点。
@AHungerArtist的答案适用于简单的用例,您希望所有请求都使用相同的代理。但是,如果您需要通过restTemplate进行一些请求以使用代理,而另一些则不需要,则可能会发现此请求更有用。(或者,如果您更喜欢通过编程方式执行此操作,而不是希望破坏系统属性!)
@Bean public RestTemplate restTemplate() { SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); Proxy proxy = new Proxy(Type.HTTP, new InetSocketAddress("my.host.com", 8080)); requestFactory.setProxy(proxy); return new RestTemplate(requestFactory); }
您应该能够以这种方式创建restTemplate bean的副本,并以通常的方式创建另一个副本,因此您可以使用或不使用代理发送请求。