如何解决Wiremock未能匹配请求
我正在尝试声明在OAuth2流中正在调用的先前已存根的端点:
stubFor(
post(urlPathEqualTo("/token"))
.withHeader(AUTHORIZATION,equalTo("Basic cGluLmFwaS5jbGllbnRJZDpwaW4uYXBpLmNsaWVudFNlY3JldA=="))
.withHeader(CONTENT_TYPE,equalTo("application/x-www-form-urlencoded;charset=UTF-8"))
.withHeader(ACCEPT,equalTo(APPLICATION_JSON_VALUE + "," + APPLICATION_FORM_URLENCODED_VALUE))
.willReturn(aResponse()
.withStatus(HttpStatus.OK.value())
.withHeader(CONTENT_TYPE,"application/json")
.withHeader(CONNECTION,"Close")
.withBody("{\n" +
" \"access_token\": \"62466f2c-ff9e-4c6c-a866-b8296cf78041\",\n" +
" \"scope\": \"trust read write\",\n" +
" \"token_type\": \"bearer\",\n" +
" \"expires_in\": 20300,\n" +
"}")));
和
verify(postRequestedFor(urlPathEqualTo("/token")));
有一段日志,存根/实际请求看起来相等,但是Wiremock说Header does not match
:
请问有人在这里有什么问题吗?预先谢谢你!
解决方法
对我来说,这似乎是一个逗号后有空格的问题,请尝试:
.withHeader(ACCEPT,equalTo(APPLICATION_JSON_VALUE + "," + APPLICATION_FORM_URLENCODED_VALUE))
顺便说一下,将标头与equalTo
进行比较可能很容易。您可以考虑使用containing
:
post(urlPathEqualTo("/token"))
.withHeader(ACCEPT,containing(APPLICATION_JSON_VALUE))
.withHeader(ACCEPT,containing(APPLICATION_FORM_URLENCODED_VALUE))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。