[英]Regarding Retrofit 1.9.0 DELETE request with body
我的应用程序中使用的Retrofit 1.9.0。我需要带主体的DELETE
请求和回调method.My
界面是
@DELETE("/Notifications/Remove")
public void notificationDelete(@Body NotificationDeleteInput obj,Callback<CommonResponse> mCallback)
当我使用此给定错误时,非主体HTTP method
不能包含@Body
或@TypedOutput
。 只有一个Http
被allowed.Found:DELETE
和DELETE
。 请帮助我如何克服此错误。
这不起作用的原因是,对于删除请求,Retrofit默认将hasBody
设置为false
。 可以,因为发送带有DELETE请求的正文没有任何意义。 但是Http规范没有明确禁止这样做。
作为一种技巧,您可以创建自己的Delete
注释,以覆盖改造后的Delete
注释,如下所示:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@RestMethod(value = "DELETE", hasBody = true)
@interface MOD_DELETE {
String value();
}
然后在您的请求中使用@MOD_DELETE
而不是@DELETE
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.