4

我正在尝试使用wire-mock 创建一个模拟服务器,但遇到了以下问题:我想访问这样的URL /customers?customerId={customerId}&customerNo={customerNo}。

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

编辑

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

在此处输入图像描述

编辑 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!")));
4

2 回答 2

1

查询参数可以在 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()));
于 2018-03-29T07:09:50.153 回答
0

我的问题是 WireMock 以 UTF-8 格式硬编码,所以当从浏览器发出请求时,我没有将 UTF-8 格式发送到端点。您不能将 WireMock 更改为接受任何东西而不是 UTF-8,但您可以触发一些 UTF-8 请求。

于 2018-03-29T08:28:56.403 回答