Android uygulamamda RestTemplate nesnesi için tüm REST isteklerini/yanıtlarını günlüğe kaydetmek için basit bir Spring Interceptor sınıfı kullanıyorum. Şimdiye kadar her şey iyi çalışıyor. Başlatma andaAndroid Spring Interceptor'daki yanıt gövdesini okuyun
public class LoggerInterceptor implements ClientHttpRequestInterceptor {
@Override
public ClientHttpResponse intercept(HttpRequest request, byte[] body,
ClientHttpRequestExecution execution) throws IOException {
Log.d(TAG, "Request body: " + new String(body));
// ...more log statements...
ClientHttpResponse response = execution.execute(request, body);
Log.d(TAG, "Response Headers: " + response.getHeaders());
return response;
}
ararım:
List<ClientHttpRequestInterceptor> interceptors = new ArrayList<ClientHttpRequestInterceptor>();
LoggerInterceptor loggerInterceptor = new LoggerInterceptor();
interceptors.add(loggerInterceptor);
restTemplate.setInterceptors(interceptors);
Ancak inputStream kez tüketilen ve ileride yeniden tüketilen bir IllegalStateException atar olur çünkü yukarıdaki yöntemde
response.getBody()
giriş yapamıyorum. Bunun etrafında bir yol var mı, böylece yanıt kütüğünü de kaydedebilirim?
3.1 Yay çerçevesi veya daha sonra, bu kesinlikle daha zarif bir çözümdür. – Nachi