MockWebServer 返回 Json 但 restTemplate.exchange 总是映射到 null

问题描述

我正在为调用某些本地服务(在端口 8888 中)的 Java 组件编写集成测试。我可以通过将端口作为参数传递给 MockWebServer 来拦截调用,如下所示:

MockWebServer server= new MockWebServer();
        server.start(8888);
        server.enqueue(new MockResponse().setBody("{ \"score\": \"1.0\",\"match\": true,\"id\":\"faq.faq8\"}")
                .addHeader("Content-Type","application/json"));

现在实际的调用是这样的:

ResponseEntity<Response> responseEntity = restTemplate.exchange(url.toUriString(),HttpMethod.POST,requestEntity,Response.class);

响应类如下所示:

public static class Response implements Serializable {
        /* Serial UUID. */
        private static final long serialVersionUID = -7548720302478842018L;

        private boolean match;
        private float score;
        private String id;

        public boolean ismatch() {
            return match;
        }

        public float getscore() {
            return score;
        }

        public String getId() {
            return id;
        }
    }

我可以使响应分数和匹配字段成为我想要的任何内容,但 id 字段始终为空。老实说,我不知道为什么。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)