我用的是ACTIX-WEB 3。我想从Actix-web的中间件系统中访问当前状态代码。
我想修改基于StatusCode
的请求,这可能吗?
例如,如果用户发送一些数据,导致actix-web生成413代码,我想修改请求。我可以通过使用ErrorHandlers
的处理程序来修改Response
,但是这些处理程序只有mut res: ServiceResponse<B>
作为它们的参数,并且似乎我无法找到从这些处理程序中访问ServiceRequest
对象的方法。
我想使用基本的中间件作为ServiceRequest
和ServiceResponse
对象在中间件中可用。
1条答案
按热度按时间k7fdbhmy1#
状态代码可以通过使用中间件代码中
HttpResponse
对象的.status()
方法获得。实现Service
trait的代码可以访问HttpResponse
,如下所示。由于状态是在发送请求后生成的,因此无法事先知道状态以便修改请求。