Java 始终使用wiremock中的ResponseTransformer获取空响应
我在使用Wiremock时遇到问题。我需要从请求主体获取一个字段,并在响应中显示它 据我所知,我需要扩展响应转换器类,然后在stubFor方法中使用这个转换器。但是当我尝试的时候,我总是得到空洞的回应。另外,我不知道如何从请求正文中只获取一个字段,因为只有Java 始终使用wiremock中的ResponseTransformer获取空响应,java,wiremock,Java,Wiremock,我在使用Wiremock时遇到问题。我需要从请求主体获取一个字段,并在响应中显示它 据我所知,我需要扩展响应转换器类,然后在stubFor方法中使用这个转换器。但是当我尝试的时候,我总是得到空洞的回应。另外,我不知道如何从请求正文中只获取一个字段,因为只有getBodyAsString()方法 我的要求是这样的 { "command":"doThis", "id":"asfksdjdskj85495848" } 这是我的代码,用于返回所有请求体作为响应 @Override pu
getBodyAsString()
方法
我的要求是这样的
{
"command":"doThis",
"id":"asfksdjdskj85495848"
}
这是我的代码,用于返回所有请求体作为响应
@Override
public ResponseDefinition transform(Request request, ResponseDefinition responseDefinition, FileSource fileSource, Parameters parameters) {
return new ResponseDefinitionBuilder()
.like(responseDefinition)
.but()
.withBody(request.getBodyAsString())
.build();
}
@Override
public boolean applyGlobally() {
return false;
}
@Override
public String getName() {
return "idTransformer";
}
...
stubFor(post(urlEqualTo("/commands"))
.withHeader("token", matching(".*"))
.willReturn(aResponse()
.withStatus(200)
.withHeader("Content-Type", "application/json")
.withTransformers("idTransformer")));
在日志中我看到了这个
匹配响应定义:
{
"status" : 200,
"transformers" : [ "idTransformer" ]
}
但答案总是空的。您能告诉我哪里做错了,以及如何从请求正文中只获取一个字段
“id”
?我发现代码中有错误。我用错地方接电话了。这是正确的代码
public class myMock {
private static WireMockServer wireMockServer;
public static void main(String args[]){
wireMockServer = new WireMockServer(WireMockConfiguration.
options().notifier(new
ConsoleNotifier(true)).extensions(IdTransformer.class));
stubFor(post(urlEqualTo("/api/commands/vehicles/FAKEBMWVEHICLE001"))
.willReturn(aResponse()
.withTransformers("idTransformer")
));
}
我发现我的代码有错误。我用错地方接电话了。这是正确的代码
public class myMock {
private static WireMockServer wireMockServer;
public static void main(String args[]){
wireMockServer = new WireMockServer(WireMockConfiguration.
options().notifier(new
ConsoleNotifier(true)).extensions(IdTransformer.class));
stubFor(post(urlEqualTo("/api/commands/vehicles/FAKEBMWVEHICLE001"))
.willReturn(aResponse()
.withTransformers("idTransformer")
));
}