【发布时间】:2015-12-28 16:17:32
【问题描述】:
我正在尝试使用 Retrofit 2.0 和 converter-jackson 模块来使用 API。
我有一些 GET 方法来获取某些对象的状态并将接收到的有效负载转换为对象工作正常。
我还有一个需要 PUT 的端点,以确认我已处理返回给 GET 请求的对象。此 PUT 方法不返回正文,如果一切正常,则仅返回状态 200 或适当的错误代码。
我尝试了几种不同的方法在我的 Retrofit 界面中指定 put 方法,但均未成功。我收到这样的错误:
com.fasterxml.jackson.databind.JsonMappingException: No content to map due to end-of-input
at [Source: java.io.InputStreamReader@1d5ef9ae; line: 1, column: 1]
如果我将方法的返回类型指定为我不希望收到的某个对象,如下所示:
@PUT('/acknowledgeStatus')
Call<String> acknowledgeStatus(@Body Acknowledgement idsToAcknowledge)
我得到这样的错误:
java.lang.IllegalArgumentException: Could not locate call adapter for class com.example.MyObject. Tried:
* retrofit.DefaultCallAdapter$1
MyObject 是当我尝试定义 PUT 方法时,我的 Retrofit API 的其他 GET 方法之一返回的对象:
@PUT('/acknowledgeStatus')
Call acknowledgeStatus(@Body Acknowledgement idsToAcknowledge)
@PUT('/acknowledgeStatus')
Response acknowledgeStatus(@Body Acknowledgement idsToAcknowledge)
如何告诉 Retrofit 不要期望此方法的响应正文,并且仍然可以访问响应状态、标头和其他详细信息?
【问题讨论】:
标签: retrofit