【问题标题】:Build Response Entity without sending it构建响应实体而不发送它
【发布时间】:2020-02-25 21:08:27
【问题描述】:

我有以下情况:在我的 spring 应用程序中,我向另一个 Web 服务发出请求。这个网络服务给我发回了一个 ResponseEntity。现在我已经修改了 ResponseEntity 这工作得很好,除了我不能建立一个新的 ResponseEntity,我不知道为什么。谁能告诉我如何构建一个新的 ResponseEntity?

这是我的代码:

 JsonNode modifiedBody = //body
 HttpHeaders modifiedHeader = //header
 HttpEntity<Object> newResponse = new HttpEntity<>(modifiedBody, modifiedHeader);

 //until this point everything works perfect now I want to create a new ResponseEntity without calling a webservice
 ResponseEntity<Object> entity = //MAKE NEW RESPONSE ENTITY

有人可以告诉我如何在不发送的情况下制作新的响应实体吗? 提前致谢。

编辑: 消失的价值:

如果我查看调试器,我会找到值。但在下一步它就消失了。

【问题讨论】:

    标签: java spring entity response


    【解决方案1】:

    就这么简单:

    ResponseEntity<Object> entity = ResponseEntity
                    .status(200) // status
                    .headers(...)
                    .body(...); // maybe some body
    

    请注意,您不能在此处传递 HttpEntity,因此您还必须通过这些静态方法设置 headers 和 body。

    【讨论】:

    • 我可以返回 ResponseEntity。不幸的是,有些信息丢失了,你能帮我吗?
    • return ResponseEntity.status(responseEntity.getStatusCode()).headers(newHeaders).body(newResponse);
    • 这就是我在查看标题/正文时返回我的 ResponseEntity 的方式,它包含我需要的信息,但是当它到达下一阶段时,信息就消失了
    • 奇怪的是所有其他值都在那里。除了同意 ID
    • 我发现了问题所在。从第三方 api 我得到了一个内容长度,我将此值传递给我的标题。但是由于我修改了内容,长度不再相同,程序会删除超过该大小的所有内容
    猜你喜欢
    • 2021-03-20
    • 2015-04-03
    • 2022-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    • 2011-01-12
    相关资源
    最近更新 更多