尝试使用代理模拟HttpClient时出现WireMock错误

时间:2019-07-16 17:05:50

标签: scala integration-testing akka-http http-proxy wiremock

我有一个Http Client,它在现实生活中使用代理将请求发送到API。我正在尝试使用WireMock运行我的http客户端测试并模拟API的响应。但是,我无法使Wiremock与代理设置一起使用。我已经尝试了所有相关组合,但仍然无法成功通过测试。

我尝试了BE_CONTAINER=GO的配置,也尝试过viaProxy的配置,但是不确定是否正确使用了它们。该文档也无济于事。

客户端代码具有以下配置:

proxiedWith

测试配置如下:

private val httpsProxySettings: ConnectionPoolSettings =
    ConnectionPoolSettings(actorSystem)
      .withConnectionSettings(ClientConnectionSettings(actorSystem))
      .withTransport(
        ClientTransport.httpsProxy(
          InetSocketAddress.createUnresolved(PROXY_HOST, PROXY_PORT)
        )
      )

1 个答案:

答案 0 :(得分:1)

您可以尝试更改为
val wireMockServer = new WireMockServer(options().proxyVia(PROXY_HOST,PROXY_PORT))
http://wiremock.org/docs/proxying/所述。

您是否需要看跌期权测试?您可以尝试更改
wireMockServer.stubFor(put(anyUrl())...)

wireMockServer.stubFor(post(anyUrl())...)

wireMockServer.stubFor(get(anyUrl())...)

您正在使用HTTPS吗?它可能需要其他配置。
另外,请尝试向请求和响应添加至少包含内容的标头和与内容设置兼容的正文。