有什么方法可以在全球范围内挂钩每个 Ion 请求?
Any way to hook onto every Ion request on a global level?
我正在使用 Ion async HTTP library for Android,我想进行一些自定义日志记录。理想的是挂钩每个请求的开始和结束,以获得总请求时间和一些其他元数据,如 HTTP 响应代码和 URL。任何人都知道有什么方法可以做到这一点?
我正在试验 setAsyncHttpRequestFactory
,但这似乎只允许过度挂钩请求开始,而不是结束。
Ion.Config ionConf = Ion.getDefault(appContext).configure();
final AsyncHttpRequestFactory reqFac = ionConf.getAsyncHttpRequestFactory();
ionConf.setAsyncHttpRequestFactory((uri, method, headers) -> {
// Do custom logging stuff here
AsyncHttpRequest req = reqFac.createAsyncHttpRequest(uri, method, headers);
return req;
});
实现并添加一个AsyncHttpClientMiddleware(继承自SimpleMiddleware)并将其注入到AsyncHttpClient 的管道中。覆盖 onRequest 和 onResponseCompleted 以获取请求开始和结束的事件。
或者,如果您只是全局启用 Ion 日志记录,您可以在 adb 中查看请求时间和各种元数据 logcat。
我正在使用 Ion async HTTP library for Android,我想进行一些自定义日志记录。理想的是挂钩每个请求的开始和结束,以获得总请求时间和一些其他元数据,如 HTTP 响应代码和 URL。任何人都知道有什么方法可以做到这一点?
我正在试验 setAsyncHttpRequestFactory
,但这似乎只允许过度挂钩请求开始,而不是结束。
Ion.Config ionConf = Ion.getDefault(appContext).configure();
final AsyncHttpRequestFactory reqFac = ionConf.getAsyncHttpRequestFactory();
ionConf.setAsyncHttpRequestFactory((uri, method, headers) -> {
// Do custom logging stuff here
AsyncHttpRequest req = reqFac.createAsyncHttpRequest(uri, method, headers);
return req;
});
实现并添加一个AsyncHttpClientMiddleware(继承自SimpleMiddleware)并将其注入到AsyncHttpClient 的管道中。覆盖 onRequest 和 onResponseCompleted 以获取请求开始和结束的事件。
或者,如果您只是全局启用 Ion 日志记录,您可以在 adb 中查看请求时间和各种元数据 logcat。