如何更新 pact jvm requestFilter 中的传入请求?

how to update the incoming request in pact jvm requestFilter?

我在 java 中有一个 spring 引导程序 API,它使用 pact-jvm 进行契约验证。 我们有一个新客户想要使用相同的 API 使用新路径,网关会处理这个问题,但这会导致协议出现问题,我想拦截请求并修改请求的路径新协议指向旧路径。 我试图在网上参考一些 material 并发现了这个: https://medium.com/dazn-tech/pact-contract-testing-dealing-with-authentication-on-the-provider-51fd46fdaa78

下面的代码打印了请求的更新值,但协议仍然失败并出现 404 错误,就好像它仍在使用新路径一样

requestFilter = { req ->
                println "incoming request : $req"
                if ("$req".contains('/new-context') ) {
                    req = "$req".replace('/new-context', '/old-context')
                    println "updated request : $req"
                }
            } 

上面代码中的问题是我将 req 视为字符串并进行操作,但它是一个 HttpRequest 对象,下面的代码为我解决了这个问题:

requestFilter = { req ->
                def uriText = req.getURI()
                println "incoming request uri : $uriText"
                if ("$uriText".contains('/new-context') ) {
                    def uriTextNew = "$uriText".replace('/new-context', '/old-context')
                    println "updated request uri : $uriTextNew"
                    URI newURI = new URI(uriTextNew)
                    req.setURI(newURI)
                }
            }