我在使用 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 的副本,并以正常方式创建另一个副本,这样您就可以在使用和不使用代理的情况下发送请求。
关于java - 使用 RestTemplate,如何先将请求发送到代理,以便我可以将 junit 与 JMeter 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3687670/