Mar*_*hov 10 java rest android retrofit
我需要使用Retrofit执行DELETE请求.所以,我的界面代码片段如下所示:
@DELETE("/api/item/{id}")
void deleteItem(@Path("id") int itemId);
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
java.lang.IllegalArgumentException:ApiItem.deleteItem:必须具有返回类型或Callback作为最后一个参数.
但是,根据Rest API的规则,我不应该收到对DELETE请求的任何响应.我该如何在界面中指定它?
谢谢.
Kon*_*iak 28
您要添加的回调作为最后一个参数的请求的方法,如果你想拥有无效的方法.你可以用Callback<Response>
.
你必须改变这个:
@DELETE("/api/item/{id}")
void deleteItem(@Path("id") int itemId);
Run Code Online (Sandbox Code Playgroud)
至 :
@DELETE("/api/item/{id}")
void deleteItem(@Path("id") int itemId, Callback<Response> callback);
Run Code Online (Sandbox Code Playgroud)
或者你可以回来 Response
@DELETE("/api/item/{id}")
Response deleteItem(@Path("id") int itemId);
Run Code Online (Sandbox Code Playgroud)
在Retrofit 2.0中,可以将“呼叫”界面用于请求的结果,如下所示。
@DELETE("/api/item/{id}")
Call<Response> deleteItem(@Path("id") int itemId);
...
Call<Response> call = YourServiceInstance.deleteItem(10);
call.enqueue(new Callback<Response>() {
...
});
Run Code Online (Sandbox Code Playgroud)