我正在尝试使用Wire-mock创建一个模拟服务器,并且面临以下问题:我想打一个像/ customers?customerId = {customerId}&customerNo = {customerNo}这样的URL。

我的问题是如何在Java代码中匹配模拟服务器存根中的请求参数customerId和customerNo。

编辑

在第一个响应之后,结果如下:

java - 如何在Wiremock网址中匹配请求参数?-LMLPHP

编辑2

这是我的存根:

WireMockServer mockServer = new WireMockServer(8079);
    mockServer.start();
    mockServer.stubFor(get(urlEqualTo("/api/loan/admin/contracts"))
            .withQueryParam("status", equalTo("ACTIVE"))
            .withQueryParam("cnp", equalTo("1950503410033"))
            .willReturn(aResponse().withBody("Welcome to Baeldung!")));

最佳答案

查询参数可以在URL中传递。

在Java中:

urlEqualTo("/your/url?and=query")


杰森:

{
  "request": {
    "url": "/your/url?and=query"
    ...
  },
  ...
}


参考:http://wiremock.org/docs/request-matching/

例:
尝试以下任一方法:

stubFor(any(urlEqualTo("/customers?customerId={your_customer_id}&customerNo={your_customer_no}"))
          .willReturn(aResponse()));


stubFor(any(urlPathEqualTo("/customers"))
          .withQueryParam("customerId", equalTo("your_customer_id"))
          .withQueryParam("customerNo", equalTo("your_customer_no"))
          .willReturn(aResponse()));

关于java - 如何在Wiremock网址中匹配请求参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49549523/

10-11 21:59
查看更多