【问题标题】:How to handle response with <?> type in spring-boot?如何在spring-boot中处理<?>类型的响应?
【发布时间】:2022-01-25 17:55:03
【问题描述】:

有一些带有方法签名的第三方函数。

public ResponseEntity&lt;?&gt; uploadFile()

没有过多的细节,这个函数上传一个文件并返回一个json响应,其中包含一个包含单词ok的字段。 我知道文件成功上传时函数返​​回的 DTO 结构。 但是我该如何处理负面结果。错误何时返回?这个例子是抽象的。但是可以理解,错误的DTO的结构并不等于DTO的结构就积极的结果。

我不知何故需要检查这个字段,我们称之为“状态”,它不为空。怎样才能做得更好?

【问题讨论】:

  • 如果您在请求时等待一些未经检查的异常,您可以使 GlobalExceptionHandler 方面并在那里捕获任何异常
  • 我的意思是可能使用类似 Optional 的东西?但是如何从 到

标签: java spring spring-boot


【解决方案1】:

您可以先将响应转换为 String 类型。

For example - ResponseEntity<String> resp = uploadfile();

然后检查响应的状态代码。 我假设您将获得 2xx 系列以成功上传文件,如果失败则获得 4xx 系列。

根据状态代码,您可以有条件地将字符串响应正文映射到您想要映射到的任何 DTO。

For ex :
 if(resp.getStatusCode()==200)  {
   SuccessDTO s= new 
ObjectMapper().readValue(resp.getBody(),SuccessDTO.class);
}
else
 {
  ErrorDTO s= new 
 ObjectMapper().readValue(resp.getBody(),ErrorDTO.class);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-24
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 2019-05-30
    相关资源
    最近更新 更多