Android 改装,204回拨无内容响应?

Android 改装,204回拨无内容响应?,android,retrofit,http-status-code-204,Android,Retrofit,Http Status Code 204,在Android上,我最初实现了如下改装界面: @DELETE(USER_API_BASE_URL + "/{id}") public void deleteUser(@Path("id") String id, Callback<User> callback); 但是我从回调中得到了相同的错误。 解决这个问题的正确方法是什么?谢谢。杰克·沃顿在评论中指出了解决方案。使用ResponseCallback 编辑:此响应对于改装

在Android上,我最初实现了如下改装界面:

@DELETE(USER_API_BASE_URL + "/{id}")
public void deleteUser(@Path("id") String id, Callback<User> callback);
但是我从回调中得到了相同的错误。
解决这个问题的正确方法是什么?谢谢。

杰克·沃顿在评论中指出了解决方案。使用ResponseCallback


编辑:此响应对于改装<2不再有效。

改装2.x
不再具有另一个答案中提到的
响应回调。您想使用
响应
类型

RxJava声明:

@PUT Observable<Response<Void>> foo();
@PUT Call<Response<Void>> bar();
@PUT Observable foo();
标准声明:

@PUT Observable<Response<Void>> foo();
@PUT Call<Response<Void>> bar();
@PUT Call bar();

这是kotlin实现处理HTTP 204和无内容的方式

@DELETE(USER_API_BASE_URL + "/{id}")
suspend fun deleteuser(@HeaderMap headers: Map<String, String>, 
                       @Path("id") id: String)
: Response<Void>
@DELETE(USER\u API\u BASE\u URL+“/{id}”)
挂起用户(@HeaderMap headers:Map,
@路径(“id”)id:字符串)
:回应

当响应中没有内容时,改装如何使
用户
?当
User
对象已被删除时,为什么要将其恢复?它是否与回调一起工作?还有,你使用的是什么版本的改装?嘿,沃洛德梅尔,它确实有效。这似乎不是正确的方法--回调成功方法的签名是
public void success(Response-response1,Response-Response){..}
,这看起来有点奇怪。你可以使用
ResponseCallback
,谢谢Jake。解决这个问题。嘿,伙计们,这个答案中的链接无效-_-|||但问题是,即使web服务调用有错误,它也会执行success块,而不是我通过改型和moshi 2.3获得的可丢弃块“无法序列化抽象类okhttp3.ResponseBody”。0@GregEnnis你用错了类型,这是来自改装2的回应。回应
@SammyPatenotte实际上这个答案已经过时了。在改型2.3.0中,使用justput Call bar()可以按预期工作;不需要响应返回类型。嗯,这很奇怪,在我的情况下,它不适用于唯一的Void,但我使用它进行POST请求,所以我不确定这是否是原因