【问题标题】:Any way to hook onto every Ion request on a global level?有什么方法可以在全球范围内挂钩每个 Ion 请求?
【发布时间】:2015-06-04 13:30:36
【问题描述】:

我正在使用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;
    });

【问题讨论】:

    标签: java android android-ion


    【解决方案1】:

    实现并添加一个 AsyncHttpClientMiddleware(继承自 SimpleMiddleware)并将其注入 AsyncHttpClient 的管道。覆盖 onRequest 和 onResponseCompleted 以获取请求开始和结束的事件。

    或者,如果您只是全局启用 Ion 日志记录,您可以在 adb logcat 中看到请求时间和各种元数据。

    【讨论】:

    • 我想将 HTTP 响应正文记录到 logcat。我找不到在onResponsecompletedonRequest 中调用或挂钩的方法来获取它,我也没有看到从全局日志记录设置中获取HTTP 正文日志记录的选项(我在VERBOSE 有它)。您能否提供一个代码示例,说明如何在 SimpleMiddleWare 的任何方法覆盖中获取主体?
    猜你喜欢
    • 2017-11-23
    • 2019-12-03
    • 1970-01-01
    • 2012-01-13
    • 2017-01-03
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    相关资源
    最近更新 更多