Tôi đang sử dụng một máy đánh chặn, và tôi muốn đăng nhập cơ thể của một yêu cầu tôi đang làm nhưng tôi không thể nhìn thấy bất kỳ cách nào để làm điều này.OkHttp làm thế nào để đăng nhập yêu cầu cơ thể
Có thể không?
public class LoggingInterceptor implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
long t1 = System.nanoTime();
Response response = chain.proceed(request);
long t2 = System.nanoTime();
double time = (t2 - t1)/1e6d;
if (request.method().equals("GET")) {
Logs.info(String.format("GET " + F_REQUEST_WITHOUT_BODY + F_RESPONSE_WITH_BODY, request.url(), time, request.headers(), response.code(), response.headers(), response.body().charStream()));
} else if (request.method().equals("POST")) {
Logs.info(String.format("POST " + F_REQUEST_WITH_BODY + F_RESPONSE_WITH_BODY, request.url(), time, request.headers(), request.body(), response.code(), response.headers(), response.body().charStream()));
} else if (request.method().equals("PUT")) {
Logs.info(String.format("PUT " + F_REQUEST_WITH_BODY + F_RESPONSE_WITH_BODY, request.url(), time, request.headers(), request.body().toString(), response.code(), response.headers(), response.body().charStream()));
} else if (request.method().equals("DELETE")) {
Logs.info(String.format("DELETE " + F_REQUEST_WITHOUT_BODY + F_RESPONSE_WITHOUT_BODY, request.url(), time, request.headers(), response.code(), response.headers()));
}
return response;
}
}
và kết quả:
POST [some url] in 88,7ms
ZoneName: touraine
Source: Android
body: [email protected] <-request.body().toString() gives me this, but I would like the content string
Response: 500
Date: Tue, 24 Feb 2015 10:14:22 GMT
body: [some content]
Cảm ơn bạn rất nhiều, nó hoạt động như một nét duyên dáng:) –
Chỉ trong trường hợp, bạn cũng biết cách làm điều này bằng cách sử dụng một đối tượng Response? (sao chép nội dung phản hồi) –
@MathieudeBrito thử 'response.body(). string()'. – aga