java - 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))
);
关于在代码中而不是注释中放入什么的任何想法?
谢谢!
解决方案
现在在 WireMock 中没有特定的表单匹配器(应该有并且我一直想研究它)。但是,您可以执行以下操作:
wireMockServer.stubFor(post(MY_URI)
.withRequestBody(containing("key1=value1"))
.withRequestBody(containing("key2=value2"))
.willReturn(okJson(expectedResponse));
请注意,如果其中有任何元字符,您需要对 value1、value2 等进行 URL 编码。
推荐阅读
- tensorflow - 如何在张量流中连接两个具有间隔的张量?
- asp.net-core - 如何在 ASP NET Core 中集成 TPL 数据流
- java - Android Studio Java设计库的实现问题
- angular - @Component({ ... }) 实际上是一个常规函数调用吗?
- windows-10 - 如何修复 svn 问题 - 运行上下文错误:现有连接被远程主机强行关闭?
- python - 在烛台图表中从 Plotly 中删除交易日
- php - 通过 URL 在 PHP 中调用 POST 函数
- c++ - C++ 中 std::forward 的多个参数
- node.js - 带有 jpg 图像的团队自适应卡片
- r - 如何在 paste0() 中使用 \n 或类似内容作为轴标签