Retrofit 2.0 beta 4响应获得IllegalArgumentException

Ahm*_*med 2 android retrofit2

我正在使用改造1.9,我创建了注销方法

@GET("/user/logout")
void logoutUser(Callback<Response> callback);

logoutUser(new RequestCallback<Response>(this) {
    @Override
    public void success(Response response, Response response2) {
        settingsService.setUserLoggedOut();
        getMainActivity().finish();
    }
});
Run Code Online (Sandbox Code Playgroud)

我升级到改装2.0 beta 4并使用此代码

@GET("user/logout")
Call<Response> logoutUser();

logoutUser().enqueue(new RequestCallback<Response>(this) {
    @Override
    public void onResponse(Call<Response> call, Response<Response> response) {
        settingsService.setUserLoggedOut();
        getMainActivity().finish();
    }
});
Run Code Online (Sandbox Code Playgroud)

我有这个例外:java.lang.IllegalArgumentException:'retrofit2.Response'不是有效的响应主体类型.你的意思是ResponseBody?

问题是什么?

小智 5

我能够通过这个答案解决这个问题:https://stackoverflow.com/a/33228322

所以尝试:

@GET("user/logout")
Call<ResponseBody> logoutUser();
Run Code Online (Sandbox Code Playgroud)

哪里ResponseBodyokhttp3.ResponseBody

然后

logoutUser().enqueue(new Callback<ResponseBody>() {

...

});
Run Code Online (Sandbox Code Playgroud)

  • 这是唯一的选择吗?如果我不在乎响应主体该怎么办。我只想要StatusCode 200或400等? (2认同)