首页 > 解决方案 > wiremock java api - 表单数据形式的存根请求主体(不是字符串,也不是 json)

问题描述

正如标题所说,我必须以表单数据的形式使用请求正文来存根发布请求。没有 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))
        );

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

谢谢!

标签: javawiremock

解决方案


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

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

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


推荐阅读