wiremock java api - 存根请求 body 以 form-data 的形式(不是字符串,也不是 json)

wiremock java api - stub request body in form of form-data (not string, nor json)

正如标题所说,我必须以表单数据的形式将 post 请求与请求 body 存根。没有 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))
        );

有什么想法可以放在代码中而不是注释中吗?

谢谢!

目前 WireMock 中没有特定的表单匹配器(应该有,我一直想在它上面工作)。但是,您可以这样做:

wireMockServer.stubFor(post(MY_URI)
            .withRequestBody(containing("key1=value1"))
            .withRequestBody(containing("key2=value2"))
            .willReturn(okJson(expectedResponse));

请注意,如果其中有任何元字符,您需要URL对值 1、值 2 等进行编码。