@DELETE-methode wordt niet ondersteund (Niet-body HTTP-methode kan geen @Body of @TypedOutput bevatten.)

ik krijg deze foutmelding:

Niet-body HTTP-methode mag geen @Body of @TypedOutput bevatten


Antwoord 1, autoriteit 100%

Ik heb onlangs deze officiële tijdelijke oplossing gebruikt:

@HTTP(method = "DELETE", path = "/job/deletejob", hasBody = true)
Observable<JobDeleteResponseModel> jobDelete(@Body JobDeleteRequestModel model);

Antwoord 2, autoriteit 5%

U moet parameters opgeven
method, path, hasBody

Kotlin-manier

@HTTP(method = "DELETE", path = "event/eventRemovePicture", hasBody = true)
fun callDeleteImage(
    @Body body: RequestBody
): Call<RemoveEventPictureResponse>

Antwoord 3, autoriteit 4%

probeer dit het is werk

@HTTP(method = "DELETE", path = "api/v3/delete", hasBody = true)
Call<ResponseBody> RESPONSE_BODY_CALL(@Header("Authorization") String authorization, @Body HashMap<String, List> stringListHashMap);

of check
https://github.com/square/retrofit/issues/974


Antwoord 4, autoriteit 4%

Ik had een soortgelijke fout.

In mijn geval gebruikte ik @GETin Interface, maar toen corrigeerde ik het naar de @POST-methode en het werkte.


Antwoord 5, autoriteit 2%

Kotlin-code:

pathis niet vereist als uw eerste argument voor de interfacemethode een url is die is geannoteerd met @Url
Voorbeeld :

@HTTP(method = "DELETE", hasBody = true)
fun deleteStudentFromDatabase(
    @Url url: String,
    @Body payload: StudentModel
 ): Observable<Any>

Als het eerste argument voor de interfacemethode geen url is, gebruik dan dit

   @HTTP(method = "DELETE", path = "{urlPath}", hasBody = true)
    fun deleteStudentFromDatabase(
        @Body payload: StudentModel,
        @Path("urlPath") url: String
     ): Observable<Any>

Antwoord 6

Wijzigen

@DELETE("/job/deletejob")
Observable<JobDeleteResponseModel> jobDelete( @Body JobDeleteRequestModel model);

naar

@HTTP(method = "DELETE", path = "/job/deletejob", hasBody = true)
Observable<JobDeleteResponseModel> jobDelete( @Body JobDeleteRequestModel model);

Het verschil zit in

@DELETE("/job/deletejob") // For DELETE without body
@HTTP(method = "DELETE", path = "/job/deletejob", hasBody = true) // For DELETE with body

Antwoord 7

@HTTP(method = "DELETE", path = "{urlPath}", hasBody = true)

Ook dit werkt prima. Het gebeurt omdat het verzoek een hoofdtekst bevat, maar dat hebben we nog niet gedefinieerd.

Other episodes