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 @GET
in Interface, maar toen corrigeerde ik het naar de @POST
-methode en het werkte.
Antwoord 5, autoriteit 2%
Kotlin-code:
path
is 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.