2017-12-01 1 views
0

Ich versuche eine bestimmte Anfrage in meinem Interceptor abzufangen. Ich möchte 401 HTTP-Status fangen, die mitWie kann ich JSON-Nutzdaten innerhalb des HTTP-Interceptors abrufen?

response.code() 

zu tun ist einfach aber ich auch ein bestimmtes Feld in der Nutzlast überprüfen müssen, und ich kann nicht finden, wie man diese Nutzlast abzurufen.

Hier ist mein Interceptor:

Interceptor authorizationInterceptor = new Interceptor() { 
    @Override 
    public Response intercept(Chain chain) throws IOException { 
     Request request = chain.request(); 
     okhttp3.Response response = chain.proceed(request); 

     if (response.code() == 401) { 
      // I need to access the payload here 
      return response; 
     } 

     return response; 
    } 
}; 

Der Debugger zeigt, dass die Nutzlast in der Antwort zur Verfügung. enter image description here

Ist es möglich, es abzurufen?

+1

was 'response.body(). String()' abgerufen werden? daran erinnern, dass es den Körper der Antwort verbrauchen wird – Selvin

+0

@Selvin es ist genau was ich brauchte danke – Louis

Antwort

0

Wie von Selvin vorgeschlagen, kann der Körper (als String) mit

response.body().string() 
Verwandte Themen