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

在协议验证过程中是否有修改请求体的方法?

高宸
2023-03-14

我试图在提供者端运行一个PACT测试,但我不知道如何操作从PACT文件中获得的请求体。我需要这样做,因为我必须使用来自State Step的id。

此外,更复杂的是,我的主体是一个XML。下面是我的协议请求的样子:

"request": {
   "method": "POST",
   "path": "/path/url",             
   "headers": {
    "Content-Type": "application/xml"
   },
   "body": "<note> <to>John</to> <from>Jane</from> <subject>Reminder</subject> </note>"
}

正如我所说的,在Provider状态下,我将有一个请求,并且这个请求的响应将是让我们说'Mary'。所以我的问题是,在执行验证测试时,如何将协议请求体中的“Jane”替换为“Mary”?多谢了。

共有1个答案

卓云
2023-03-14

我已经设法解决了我的问题,修改了TargetRequestFilter中的请求。

@TargetRequestFilter
public void updateRequest(HttpPost request) {
    HttpEntity entity = request.getEntity();
    String body = EntityUtils.toString(entity);
    body = replace(body, "Jane", "Mary");
    entity = new StringEntity(body);
    request.setEntity(entity);
}

这段代码将在调用之前修改请求,并发送所需的值,而不是Pact文件中的值。

 类似资料:
  • 我正在替换Spring Boot REST控制器中对POST请求输入的手动验证。JSR-303 Spring Bean验证用于验证请求主体中的实例变量,这是预期的工作。什么是建议的方法来验证请求主体中的对象不是null? 我试过: > 用@NotNull注释整个类 我正在替换: 与Bean验证等效: 我尝试通过以下方式对控制器方法进行单元测试: 我希望MethodArgumentNotValidE

  • 问题内容: 我正在使用 Selenium Java 2.0b3 。我有这个代码: 在InternetExplorerDriver(使用 IE 8 )中可以像超级按钮一样工作,但不能在FirefoxDriver(使用 Firefox 4 )中使用。我已经用代码尝试了很多事情,但是没有任何效果。而且我 必须 使用FirefoxDriver,因为我正在测试的应用程序在IE中表现不佳。 您可能会猜到,“

  • 验证阶段也称为乐观并发控制技术。 在基于验证的协议中,事务在以下三个阶段中执行: 读阶段 :在此阶段,读取并执行事务T。它用于读取各种数据项的值并将它们存储在临时局部变量中。 它可以对临时变量执行所有写操作,而无需更新实际数据库。 验证阶段 :在此阶段,将根据实际数据验证临时变量值,以查看它是否违反了可串行性。 写入阶段 :如果验证了事务的验证,则将临时结果写入数据库或系统,否则将回滚事务。 这里

  • 一、修改请求 在上一步中,我们恢复了截获的请求,没有进行任何更改。当我们在将请求转发到目的地之前修改被拦截的请求时,就会发挥拦截的全部功能。您可以继续上一步中的窗口和已配置的拦截规则。 欢迎来到mitmproxy教程。在本课程中,我们将介绍对截获请求的修改。 点击查看教程 二、影片内容 欢迎来到mitmproxy教程。在本课程中,我们将介绍对截获请求的修改。 我们配置和使用与上一教程中相同的拦截规

  • 我正在使用Spring Integration Filter对传入消息强制执行一些验证逻辑。验证的结果需要发回消息网关调用方,以便通知请求的具体错误。 null 配置 网关 过滤器

  • 我试图完成角快速入门教程,但我得到了CORS错误。 我在windows主机文件中的system32/drivers/etc/下配置了此主机: 我在apache中配置了这个虚拟主机 null 这是我的package.json: 这是我的index.html: 这是我的grunt ts编译器文件: