如何拦截GRPC响应



我的移动应用程序正在使用flutter。我可以拦截请求。但我不知道如何在颤振中拦截GRPC的响应。

如何拦截颤振中的GRPC响应?

看起来很容易。第一:

class LoggerInterceptor extends ClientInterceptor {
static final LoggerInterceptor _instance = LoggerInterceptor._();
static LoggerInterceptor get instance => _instance;
LoggerInterceptor._();
@override
ResponseFuture<R> interceptUnary<Q, R>(
ClientMethod<Q, R> method, Q request, CallOptions options, ClientUnaryInvoker<Q, R> invoker) {
logger.d(
'Grpc request. '
'method: ${method.path}, '
'request: $request',
);
final response = super.interceptUnary(
method,
request,
options,
invoker,
);
response.then((r) {
logger.d(
'Grpc response. '
'method: ${method.path}, '
'response: ${Utils.getSubstring(r.toString(), 3000)}',
);
});
return response;
}
}

第二:在创建客户端时,将拦截器添加到拦截器中:

myClient = SomeServiceClient(
clientChannel,
interceptors: [
InfoInterceptor.instance,
LoggerInterceptor.instance,
],
),

最新更新