java 如何根据主机名设置wiremock服务器和存根请求

xuo3flqw  于 2023-05-05  发布在  Java
关注(0)|答案(1)|浏览(174)

我能够通过使用实现wire mock的基本设置:

public void mock(){
        WireMockServer wireMockServer = new WireMockServer(443)
        wireMockServer.start()
        configureFor("localhost", 443)
        stubFor(post(urlEqualTo("/path/link")).willReturn(aResponse().withBody("hello world")).withStatus(200))
    }

这对于运行在本地主机端口8080上的任何资源都很有效,如http://localhost:8080/path/link。
如果我想模拟一个没有指定任何端口的主机名,比如https://apigeew-uat.company.net/path/link,该怎么办?在这里将如何确定端口?
configureFor用于什么?.我知道我们指定了wiremock服务器运行的端口,但不太明白配置。

iugsix8n

iugsix8n1#

没有端口号的URL默认为HTTP端口80或HTTPS端口443。
因此,如果你想在HTTPS上运行WireMock,而没有端口号,你需要在HTTPS端口设置为443的情况下启动它:

WireMockServer wireMockServer = new WireMockServer(wireMockConfig().httpsPort(443));

默认情况下,WireMock将提供自己的自签名TLS证书,您的Web浏览器或HTTP客户端不会信任该证书。您需要配置这些证书以信任WireMock的证书,或者提供您自己的证书,如下所示:https://wiremock.org/docs/https/
注意 *nix系统需要WireMock进程(或者在本例中是父Java程序)以root权限运行,以便能够绑定到〈1024的端口号。

相关问题