【问题标题】:Jersey not showing response in case it was an error如果出现错误,泽西岛没有显示响应
【发布时间】:2023-03-03 20:50:01
【问题描述】:

我有以下问题...

我正在测试一项在 GET 请求上返回 HTTP 响应的服务。

我的问题是我想查看响应,即使它是 HTTP 500 / 404 或任何响应。

我想看看那个。但我不能,因为它会引发异常,仅此而已。

有没有办法查看球衣响应,即使它是错误响应?

我的代码是这样的:

webResource = client.resource(url);

response = webResource.queryParams(alertParams)
        .header("x-token", token).get(String.class);

因此,当 get 收到来自服务的错误响应时,我将无法查看该响应,尽管响应是这样的:

{ "errCode" : "ERR002", “错误消息”:“”, “techErrMsg”:“登录失败通用” }

这是一个 400 错误请求。

非常感谢大家的帮助!!

【问题讨论】:

    标签: java jersey jersey-client


    【解决方案1】:

    这是您需要花一些时间阅读文档的地方...如果您尝试将响应解析为 ClientResponse 以外的任何内容,则当您收到 HTTP 错误状态时,WebRequest#get(Class) 将引发异常。

    因此,您需要做的就是更改.get(String.class) -> .get(ClientResponse.class),然后您可以将实体本身(以及状态和其他所有内容)从 ClientResponse 对象中拉出,而不会出现异常。

    【讨论】:

    • 好人!谢谢你,给我一个很好的教训,让我多看文档!!!!!!!!!坦克!
    • 我使用的是 Jersey 2.5.1,如果我打电话给get(Response.class),这只适用于JerseyTest
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多