我正在使用颤振作为我的移动应用程序。我可以拦截请求。但是我不知道如何拦截GRPC中的响应。
如何在颤振中拦截GRPC响应?
发布于 2022-07-12 09:08:47
看起来挺容易的。第一:
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,
],
),https://stackoverflow.com/questions/72949714
复制相似问题