Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 始终使用wiremock中的ResponseTransformer获取空响应_Java_Wiremock - Fatal编程技术网

Java 始终使用wiremock中的ResponseTransformer获取空响应

Java 始终使用wiremock中的ResponseTransformer获取空响应,java,wiremock,Java,Wiremock,我在使用Wiremock时遇到问题。我需要从请求主体获取一个字段,并在响应中显示它 据我所知,我需要扩展响应转换器类,然后在stubFor方法中使用这个转换器。但是当我尝试的时候,我总是得到空洞的回应。另外,我不知道如何从请求正文中只获取一个字段,因为只有getBodyAsString()方法 我的要求是这样的 { "command":"doThis", "id":"asfksdjdskj85495848" } 这是我的代码,用于返回所有请求体作为响应 @Override pu

我在使用Wiremock时遇到问题。我需要从请求主体获取一个字段,并在响应中显示它

据我所知,我需要扩展响应转换器类,然后在stubFor方法中使用这个转换器。但是当我尝试的时候,我总是得到空洞的回应。另外,我不知道如何从请求正文中只获取一个字段,因为只有
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")
                  ));
}