Retrofit 2.0 how to get deserialised error response.body

前端 未结 21 2223
庸人自扰
庸人自扰 2020-11-28 02:46

I\'m using Retrofit 2.0.0-beta1.

In tests i have an alternate scenario and expect error HTTP 400

I would like to have retrofit.Respons

21条回答
  •  挽巷
    挽巷 (楼主)
    2020-11-28 03:06

    if(!response.isSuccessful()) {
        StringBuilder error = new StringBuilder();
        try {
            BufferedReader bufferedReader = null;
            if (response.errorBody() != null) {
                bufferedReader = new BufferedReader(new InputStreamReader(
                        response.errorBody().byteStream()));
    
                String eLine = null;
                while ((eLine = bufferedReader.readLine()) != null) {
                    error.append(eLine);
                }
                bufferedReader.close();
            }
    
        } catch (Exception e) {
            error.append(e.getMessage());
        }
    
        Log.e("Error", error.toString());
    }
    

提交回复
热议问题