当前位置: 首页 > 知识库问答 >
问题:

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

耿珂
2023-03-14

我有一个java的Spring BootAPI,它使用pact-jvm进行pact验证。我们有一个新的客户机,他想使用一个新的路径来使用相同的API,网关会处理这个路径,但这会引起pacts的问题,我想截取请求,并修改请求的路径,使新的pacts指向旧的路径。我试图在网上查阅一些资料,发现:https://medium.com/dazn-tech/pact-contract-testing-dealg-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"
                }
            } 

共有1个答案

百里丁雨
2023-03-14

上面代码中的问题是我将请求视为字符串并进行操作,但它是一个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)
                }
            }
 类似资料:
  • 问题内容: 也许是时候了,也许是我淹没在稀疏的文档中,无法将自己的头围在Mongoose中的更新概念上:) 这是交易: 我有一个联系模式和模型(缩短的属性): 我从客户端收到一个包含我需要的字段的请求,并因此使用我的模型: 现在我们解决了这个问题: 如果我打电话,如果使用相同电话号码的联系人已经存在(如预期-唯一),我将收到一条错误消息 我无法致电联系,因为该方法在文档中不存在 如果我对模型调用u

  • 这里一个非常常见的问题是如何执行upsert,MySQL称之为,标准支持将其作为操作的一部分。 鉴于PostgreSQL不直接支持它(在PG9.5之前),您如何做到这一点?考虑以下几点: 现在假设您要“upsert”元组,,那么新的表内容将是: 在Insert中,关于PostgreSQL中的重复更新?详细讨论了这个主题,但这是关于MySQL语法的替代方法,随着时间的推移,它增加了一些无关的细节。我

  • 当我开发一个Android应用程序时,我有一个作为单独的Android Studio项目创建的库,可以通过将它插入新项目来使用它。我通过选择“文件|新建|导入模块…”插入库选项 问题是在导入之后,Gradle创建了我的库的硬拷贝。如果我在主外部项目中更改库代码,则使用库的项目中的代码将不会得到更新。 我如何拥有一个库并在多个项目中共享它?我需要在一个地方更改库,然后使用它的所有其他项目都得到更新。

  • 这里一个非常常见的问题是如何执行upsert,MySQL称之为,标准支持将其作为操作的一部分。 鉴于PostgreSQL不直接支持它(在PG9.5之前),您如何做到这一点?考虑以下几点: 现在假设您要“upsert”元组,,那么新的表内容将是: 这就是人们在讨论时所谈论的。至关重要的是,在同一表上存在多个事务的情况下,任何方法都必须是安全的--要么使用显式锁定,要么以其他方式防止产生的竞争条件。

  • 问题内容: 如何使用Servlet过滤器来更改来自的传入Servlet请求网址 至 ? 问题答案: 实施。 在方法中,将传入内容强制转换为。 用抢的路径。 使用简单的方法,如,,c等提取感兴趣的部分,构成了新的路径。 使用或然后将请求/响应转发到新的URL(服务器端重定向,不反映在浏览器地址栏中),或将传入的内容强制转换为然后将响应重定向到新的URL(客户端重定向,反映在浏览器地址栏)。 注册过滤

  • 问题内容: 我浏览了猫鼬API,以及关于SO和google小组的许多问题,但仍然无法弄清更新嵌入式文档。 我正在尝试使用args的内容更新此特定的userListings对象。 以下是架构: 此发现也不起作用,这可能是第一个问题: 返回: 那应该等同于此mongo客户呼叫: 运行: 问题答案: 当您已有用户时,您可以执行以下操作: 如在这里找到:http : //mongoosejs.com/do