我需要使用拦截器验证和记录一些grpc服务请求的数据。我查看了ServerInterceptor的interceptCall方法,但找不到获取请求对象的方法。是否有办法在拦截器内部获取请求对象?
您需要返回并扩展ForwardingServerCallListener,并监听ServerCall.Listener.onMessage()回调。
ForwardingServerCallListener
ServerCall.Listener.onMessage()
onMessage()
super.onMessage(message)
call#close(Status)
next.startCall(call, headers);
super.onMessage()
onMessage()
实现中调用super.onMessage(message)
。而在出现错误时,我可以使用call#close(Status)
? - Dmitry Minkovskynext.startCall(call, headers);
来获取我的ForwardingServerCallListener
委托,那么我是否已经将调用传递到拦截器链中了?从文档上看,我认为不是这样的... 我假设“将调用传递到拦截器链中”意味着使用super.onMessage()
。我正在使用直接执行器,所以这应该没有关系吧? - Dmitry Minkovsky