问题描述
我正在尝试声明在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))