gpt4 book ai didi

java - JAX-RS 应用程序未收到 Apache Wink Rest 客户端错误的正文

转载 作者:行者123 更新时间:2023-12-01 09:40:49 25 4
gpt4 key购买 nike

我需要对 JAX-RS 应用程序内部的外部源进行 JSON API 调用。根据我的研究,为了做到这一点,我需要使用 RestClient(),它可以工作。但只有当我得到成功的回复时。当状态代码为 400 以外的任何内容时,它无法解析正文。以下是当我获得 200 状态 时的工作代码示例:

Resource resource = client.resource("https://api.paytrace.com/v1/customer/create");
String response = resource
.contentType(MediaType.APPLICATION_JSON)
.header("Authorization", "Bearer " + accessToken)
.accept(MediaType.APPLICATION_JSON)
.post(String.class, paytraceJSON);

我目前只是尝试注销响应,但当响应详细信息返回正文中的错误时,我什么也没得到。有没有更好的方法来处理这个问题,以便我可以从我自己使用的服务 API 中回显错误?

最佳答案

我没有使用Resource来处理所有事情,而是能够利用转换为ClientResponse而不是String,这将返回错误当响应失败时(无论出于何种原因),仅显示文本。

我需要对 JAX-RS 应用程序内部的外部源进行 JSON API 调用。根据我的研究,为了做到这一点,我需要使用 RestClient(),它可以工作。但只有当我得到成功的回复时。当状态代码不是 400 时,它无法解析正文。下面是我获得 200 状态时的工作代码示例:

旧方法:

Resource resource = client.resource("https://api.com");
String response = resource
.contentType(MediaType.APPLICATION_JSON)
.header("Authorization", "Bearer " + accessToken)
.accept(MediaType.APPLICATION_JSON)
.post(String.class, payload);
//Parse the String here to turn it into a JSONObject

新方法:

Resource resource = client.resource("https://api.com/");
ClientResponse response = resource.contentType("application/json")
.accept("application/json")
.header("Authorization", "Bearer " + accessToken)
.post(payload);
JSONObject customerResponseObject = response.getEntity(JSONObject.class);

关于java - JAX-RS 应用程序未收到 Apache Wink Rest 客户端错误的正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38466663/

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