1. ホーム
  2. android

[解決済み] Retrofit 2 で空のレスポンスボディを処理するにはどうしたらよいですか?

2022-04-28 14:36:48

質問

最近、Retrofit 2を使い始めたのですが、空のレスポンスボディをパースする問題に直面しました。私のサーバーでは、レスポンスボディに何のコンテンツもないhttpコードのみが応答されます。

サーバーの応答に関するメタ情報(ヘッダー、ステータスコードなど)のみを処理するにはどうすればよいですか?

どのように解決するのですか?

編集してください。

ジェイク・ウォートンが指摘するように

@GET("/path/to/get")
Call<Void> getMyData(/* your args here */);

は、私の最初の回答に対して、最適な方法です --。

を返せばいいんです。 ResponseBody で、これはレスポンスのパースを回避することができます。

@GET("/path/to/get")
Call<ResponseBody> getMyData(/* your args here */);

そして、呼び出しの中で

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
    }
});