Search code examples
androidretrofit

How to send a HTTP-delete with a body in retrofit?


When I try to create a delete method:

public interface ImageService {
    @DELETE("api/v1/attachment")
    Call<BaseResponse> delete(@Body DeleteModel deleteModel);
}

I get the error which basically boils down to these lines from the stacktrace:

E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.RuntimeException: Failure delivering result
java.lang.IllegalArgumentException: Non-body HTTP method cannot contain @Body.
Caused by: java.lang.IllegalArgumentException: Non-body HTTP method cannot contain @Body.

How can I add a body to a delete method ?

I have searched here but found 3 not answers and nothing using retrofit.


Solution

  • A more simplified answer.

    @HTTP(method = "DELETE", path = "/api/analysis_delete", hasBody = true)
    Call<Analysis_Delete_RequestResult_Api10> analysis_delete_api10(@Field("seq") String seq);
    

    This will do the trick.