一尘不染

使用RestTemplate,如何首先将请求发送到代理,以便可以在JMeter中使用我的Junit?

spring-mvc

我在使用Spring-MVC
3.0实现的开发箱上运行了一个Web服务。我有各种使用RestTemplate针对该服务进行测试的JUnit。我想做的就是让JMeter在运行它们时拾取那些JUnits
REST请求。但是,要做到这一点,我需要让Spring的RestTemplate将它们发送到运行JMeter的代理中。所以,问题是,我该怎么做?

我用CXF及其http:conduit和http:client东西做了类似的事情,但是我真的不知道如何用Spring-MVC做到这一点。


阅读 407

收藏
2020-06-01

共1个答案

一尘不染

@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的副本,并以通常的方式创建另一个副本,因此您可以使用或不使用代理发送请求。

2020-06-01