【问题标题】:RetroFit status code 201 interpreted as errorRetroFit 状态码 201 解释为错误
【发布时间】:2015-03-24 00:35:38
【问题描述】:

我正在开发一个 RESTful API,它有一个端点,可以创建一个实体。此端点通过 POST 调用,并以 201 和正文中的字段进行响应。

我看到 Retrofit 将这个 201 响应解释为失败并调用 failure() 方法。一种解决方案是将响应代码更改为 200,但有谁知道为什么要这样做?

谢谢

【问题讨论】:

  • 你说的很奇怪,因为在RestAdapter中你可以找到这个条件if (statusCode >= 200 && statusCode < 300) { ,这说明哪个代码是错误201不是改造错误。

标签: retrofit


【解决方案1】:

documentation of the Callback class,我们有:

失败(RetrofitError 错误)

由于网络原因,HTTP 响应不成功 失败、非 2XX 状态码或意外异常。

也就是说,你的201代码状态应该被处理为成功。

但您所面临的问题还有其他一些原因。从this answer可以看出retrofit可以抛出异常,调用failure方法。尝试查看您的 gson 解析器,即代表此服务的预期响应的 POJO 类。

【讨论】:

    猜你喜欢
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 2011-12-11
    • 2019-02-26
    相关资源
    最近更新 更多