gpt4 book ai didi

java - 贾克斯-RS : Getting error message from REST call?

转载 作者:行者123 更新时间:2023-12-03 09:06:05 25 4
gpt4 key购买 nike

我正在使用 Jax-RS作为我的REST框架。如果失败(即出现 500 错误),我希望能够从 rest 调用中提取错误消息。最好的方法是什么?

例如。当我调用 POSTMAN 时并得到一个错误我得到以下500:

{
"reason": "No data retrieved for GET call",
"response": "failure"
}

如果调用失败,如何在我的代码中检索此信息?

最佳答案

如果您正在寻找的是解析:

该响应采用名为 JSON 的文本格式。 (JavaScript 对象表示法)

使用 JSON解析库如GSON

String json = //..... get the api response as a String ....
APIResponse response = new Gson().fromJson(json, APIResponse.class);

使用 ApiResponse看起来像:
public class APIResponse {

public String reason;
public String response;

public void setReason(String reason) {
this.reason = reason;
}

public String getReason() {
return this.reason;
}

public void setReason(String reason) {
this.response = response;
}

public String getResponse() {
return this.response;
}
}

另一方面,如果这是来自您的 API 的响应并且您希望处理它:请查看 JAX-RS Exception Handling

您可以实现 ExceptionMapper界面:
public interface ExceptionMapper<E extends Throwable> {
Response toResponse(E exception);
}

并注册一个 @Provider处理异常:
@Provider
public class EntityNotFoundMapper implements ExceptionMapper<Exception> {

public Response toResponse(Exception e) {
// Do some logic like log an error
return Response.status(Response.Status.NOT_FOUND).build();
}
}

关于java - 贾克斯-RS : Getting error message from REST call?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46665324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com