当前位置: 首页 > 知识库问答 >
问题:

wiremock Java API——表单数据形式的存根请求体(不是字符串,也不是json)

江新
2023-03-14

顾名思义,我必须以表单数据的形式将post请求与请求体存根在一起。没有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))
        );

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

谢谢大家!

共有1个答案

乔俊才
2023-03-14

WireMock中现在没有特定的表单匹配器(应该有,我一直想处理它)。但是,您可以这样做:

java prettyprint-override">wireMockServer.stubFor(post(MY_URI)
            .withRequestBody(containing("key1=value1"))
            .withRequestBody(containing("key2=value2"))
            .willReturn(okJson(expectedResponse));

注意,你需要URL编码值1,值2等。如果里面有元字符。

 类似资料:
  • 问题内容: 我的印象是,使用x-www-form-urlencoded规范的POSTS应该在帖子正文中发送URL编码的参数字符串。但是,当我这样做时 接收端的请求主体如下所示: 但我期望得到这个 我如何获得请求以第二种形式发送数据? 问题答案: 获得JSON的原因是因为您显式调用以生成JSON字符串。只是不这样做,您就不会得到JSON字符串。换句话说,将第一行更改为: 正如文档所解释的,如果将di

  • 本文向大家介绍JavaScript 数字的字符串表示形式,包括了JavaScript 数字的字符串表示形式的使用技巧和注意事项,需要的朋友参考一下 示例 JavaScript具有从Number到String表示形式的本地转换,从2到36的任何基数。 十进制(以10为底)之后最常见的表示形式是十六进制(以16为底),但本节的内容适用于范围内的所有底。 为了将数字从十进制(以10为底)转换为十六进制(

  • 我正在尝试使用JsonObject将java对象转换为String。以下是我用来添加属性的代码: 这里最后一个属性条件是Long值的列表,下面是检索到的响应: 调味品的预期产量如下: 我应该怎么做才能获得JSON数组而不是字符串形式的调味品?

  • 问题内容: 假设您要在管道上执行正则表达式搜索并提取,但是该模式可能会跨越多行,该怎么做?也许正则表达式库适用于流? 我希望使用Python库完成这项工作吗?但是任何解决方案都可以,当然不是库,而是cmd行工具。 顺便说一句,我知道如何解决我当前的问题,只是寻求一个通用的解决方案。 如果不存在此类库,那么在常规数学算法永远不需要向后扫描的情况下,为什么常规库不能与流一起使用。 问题答案: 如果您寻

  • 问题内容: 我使用不同的服务器和配置。获得scheme:// host:[如果不是端口80的端口]的最佳Java代码方法是什么。 这是我使用过的一些代码,但是不知道这是否是最好的方法。(这是伪代码) HttpServletRequest ==请求 这样val返回: 要么 基本上,我需要查询字符串和“上下文”之外的所有内容。 我也考虑使用URL: 问题答案: 试试这个: 编辑 隐藏 http 和 h

  • 我一直认为f-strings调用了方法。也就是说,f{x}始终与str(x)相同。然而,对于这个类 是,而是”。如果我使用enum,这个例子就不起作用了。枚举作为基类。 f字符串调用哪些功能?