wiremock java api - 表单数据形式的存根请求主体(不是字符串,也不是 json)

Gio*_*kis 4 java wiremock

正如标题所说,我必须以表单数据的形式存根带有请求正文的发布请求。没有 json、字符串或 xml。我正在使用 junit 和 wiremock 的 java api。

我正在做如下事情:

 wireMockServer.stubFor(post(urlEqualTo(MY_URI))
               .withRequestBody(
          // how do I stub a body in form data format??                  
          ).willReturn(aResponse().withStatus(200).withHeader("content-type", "application/json").withBody(expectedBody))
        );
Run Code Online (Sandbox Code Playgroud)

关于在代码中放置什么而不是注释的任何想法?

谢谢!

Tom*_*Tom 8

现在 WireMock 中没有特定的表单匹配器(应该有,而且我一直想继续研究它)。但是,您可以执行以下操作:

wireMockServer.stubFor(post(MY_URI)
            .withRequestBody(containing("key1=value1"))
            .withRequestBody(containing("key2=value2"))
            .willReturn(okJson(expectedResponse));
Run Code Online (Sandbox Code Playgroud)

请注意,如果其中有任何元字符,则需要对 value1、value2 等进行 URL 编码。