[英]Not receiving body on Apache Wink Rest Client error with JAX-RS Application
我需要对JAX-RS应用程序内部的外部源进行JSON API调用。 从我的研究中,为了做到这一点,我需要使用RestClient()
。 但是只有当我收到成功的回复时。 当状态码不是400
时,它将无法解析正文。 这是当我获得200 status
时工作代码的示例:
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);
我目前正尝试注销response
但是当响应详细说明正文中的错误时,我什么也没得到。 有没有更好的方法可以解决此问题,因此我可以从自己使用的服务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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.