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

pact-js:POST正文被VerifyProvider篡改

陶裕
2023-03-14


我遇到了一个关于Pact-js和POST主体的奇怪问题。

背景:
使用者端
-我有一个我正在尝试测试的NodeJs应用程序
-我配置了Pact并设置了适当的框架
-所有测试运行成功并生成了合同

提供者端:
-同样,我有一个我正在尝试测试的NodeJs应用程序
-Pact已经设置好并框架就位
-当我运行测试时,所有GET请求都运行成功,但是所有POST都报告失败。

问题:
-当我回显从Pact(veryifyProvider)传递给服务的POST正文时,我可以看到它在另一个'Key:value'配对中包装了正文(JSON),其中我要解析的正文是键,而值是空的。它还为正文中的所有双引号添加了转义字符(\)。ex:
{“{\”帐户\“:\”123\“,\”轨道\“:\”5.00\“,\”日期\“:\”2016-06-22\“,\”客户端\“:\”1234\“,\”Spring\“:\”1234\“}”:“”}

当我查看Pact contract json时,一切看起来都是正确的。在VerifyProvider读取JSON和将其传递给RESTendpoint之间的某个地方,主体被破坏了。这只是在测试过程中发生的接缝,正常的调用工作是适当的。

下面是我使用Provider端执行验证的代码:

const verifier = require('pact').Verifier;
const path = require('path');

let contract = path.join(__dirname, 'pactContract.json');

let opts = {
 providerBaseUrl: "http://localhost:3001",
 pactUrls: [contract],
};

verifier.verifyProvider(opts)
 .then((res) => {
 console.log('pact veryify complete, !!!');
 console.log(res);
 process.exit(0);
 }).catch((error) => {
 console.log(error);
 process.exit(1);
});

我无法找出我的确切的消费者代码库,但它的结构几乎相同,在这里显示的pact-js。

非常感谢任何帮助!

共有1个答案

钮兴安
2023-03-14

请检查content-type头,并确保它是application/json。如果服务认为它匹配短信,就会发生这种情况。

 类似资料:
  • 当我试图在Android Studio上构建另一台计算机上(而不是在生成密钥的PC上)的签名APK文件时,出现了错误:

  • 我正在开发一个android项目,用debug.keystore签署我的应用程序(同时开发)...现在我需要使用“真正的”生产keystore(当我把我的apk上传到play store时使用的那个),同时开发测试一些应用购买的东西。 因为我还没有输入密码。我在eclipse(juno)中的哪里输入密码? 或者在eclipse中有没有更好的方法(例如在wizzard中),而不直接替换debug.k

  • 我试图通过使用Android Studio v1.4中的内置小部件来生成一个签名的APK。 然而,我得到了这个烦人的错误 错误:任务“:app:PackageRelease”执行失败。无法从存储区“C:\users\lancelot\desktop\release.jks”读取密钥cckey:Keystore被篡改,或者密码不正确 然后我输入了我的密钥密码,但没有幸运地签署APK...我甚至尝试使

  • 我知道很多人都有这个问题,但是我真的需要一些关于各种答案的澄清。 每当我尝试在Android Studio中生成一个签名的APK,它都会出现“密钥库被篡改,或者密码不正确”,我已经尝试了很多建议的修复方法。 当我尝试输入cmd: “C:\Program Files\java\jdk1.7.0_13\bin\keytool.exe”-storepasswd-new android-keystore“

  • 问题内容: 我正在尝试创建一个表单集来保存记录。但是,提交表格时,我总是收到错误消息。如果可以的话,请告诉我如何保存My记录批次。 Myviews.py: Myforms.py My template:: Mymodels.py 问题答案: 您必须在模板中呈现管理表单。 一些选定的报价: 表单集使用此表单来管理表单集中包含的表单的集合。如果您不提供此管理数据,则会引发异常[。] 管理表单可用作表单

  • 我想从下面的代码返回文档对象。目前我得到的文档没有页面例外。