Solución:
Editar:
Como señala Jake Wharton,
@GET("/path/to/get")
Call<Void> getMyData(/* your args here */);
es la mejor manera de hacerlo frente a mi respuesta original:
Puedes devolver un ResponseBody
, que omitirá el análisis de la respuesta.
@GET("/path/to/get")
Call<ResponseBody> getMyData(/* your args here */);
Entonces en tu llamada
Call<ResponseBody> dataCall = myApi.getMyData();
dataCall.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Response<ResponseBody> response) {
// use response.code, response.headers, etc.
}
@Override
public void onFailure(Throwable t) {
// handle failure
}
});
Si usa RxJava, entonces es mejor usar Completable
en este caso
Representa un cálculo diferido sin ningún valor, pero solo una indicación de finalización o excepción. La clase sigue un patrón de eventos similar al de Reactive-Streams: onSubscribe (onError | onComplete)?
http://reactivex.io/RxJava/2.x/javadoc/io/reactivex/Completable.html
en la respuesta aceptada:
@GET("/path/to/get")
Observable<Response<Void>> getMyData(/* your args here */);
Si el punto final devuelve un código de respuesta de falla, todavía estará en el onNext
y tendrá que comprobar el código de respuesta usted mismo.
Sin embargo, si usa Completable
.
@GET("/path/to/get")
Completable getMyData(/* your args here */);
solo tendrás onComplete
y onError
. si el código de respuesta es exitoso, disparará el onComplete
de lo contrario se disparará onError
.
Si está usando rxjava, use algo como:
@GET("/path/to/get")
Observable<Response<Void>> getMyData(/* your args here */);