Yevgen Derkach Yevgen Derkach - 1 year ago 458
Android Question

How can I handle empty response body with Retrofit 2?

Recently I started using

Retrofit 2
and I faced an issue with parsing empty response body. I have a server which responds only with http code without any content inside the response body.
How can I handle only meta information about server response (headers, status code etc)?

Thanks in advance!

Answer Source


As Jake Wharton points out,

Call<Void> getMyData(/* your args here */);

is the best way to go versus my original response --

You can just return a ResponseBody, which will bypass parsing the response.

Call<ResponseBody> getMyData(/* your args here */);

Then in your call,

Call<ResponseBody> dataCall = myApi.getMyData();
dataCall.enqueue(new Callback<ResponseBody>() {
    public void onResponse(Response<ResponseBody> response) {
        // use response.code, response.headers, etc.

    public void onFailure(Throwable t) {
        // handle failure