繁体   English   中英

JAX-RS应用程序未收到Apache Wink Rest Client错误消息

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM