Newman:未知编码:在 AWS CodeBuild 上运行 Newman cli 时弹出 latin1
Posted
技术标签:
【中文标题】Newman:未知编码:在 AWS CodeBuild 上运行 Newman cli 时弹出 latin1【英文标题】:Newman: Unknown encoding: latin1 pop up when running Newman cli on AWS CodeBuild 【发布时间】:2019-07-20 21:07:41 【问题描述】:几个月前,我在 AWS CodeBuild 上设置了 Newman (postman cli),它运行良好。然后这个错误不知从何而来:error: Unknown encoding: latin1
在本地工作中完美运行相同的命令。
在 AWS EC2 实例上的 docker 内运行相同的命令可以完美运行。
只有在运行作为我的 AWS CodePipeline 一部分的 AWS CodeBuild 时才会失败。
JSON 文件中没有任何特殊字符。
这是我的 CodeBuild 构建规范
version: 0.2
env:
variables:
AWS_HOST : "https://api.aws.com/demo-testing"
phases:
pre_build:
commands:
- npm install newman --global
build:
commands:
- newman run APITesting.json -e env.json --bail
一切正常,除了
- newman run APITesting.json -e env.json
它给了我一个毫无意义的错误:error: Unknown encoding: latin1
即使我用 demo.json 替换了 APITesting.json 演示.json:
"info":
"_postman_id": "5bc2766f-eefc-48f2-a778-f05b2b2465ef",
"name": "A",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
,
"item": [
"name": "GetMyProfile",
"event": [
"listen": "test",
"script":
"id": "1b46d302-7014-4c09-bac9-751d2cec959d",
"exec": [
"pm.test(\"Status code is 200\", function () ",
" pm.response.to.have.status(200);",
");"
],
"type": "text/javascript"
,
"listen": "prerequest",
"script":
"id": "f9a5dc64-33ab-42b1-9efa-f0a3614db340",
"exec": [
""
],
"type": "text/javascript"
],
"request":
"auth":
"type": "noauth"
,
"method": "GET",
"header": [
"key": "Content-Type",
"value": "application/json"
,
"key": "user",
"value": "xxxx"
,
"key": "email",
"value": "xxxx@gmail.com"
,
],
"body":
"mode": "raw",
"raw": ""
,
"url":
"raw": "https://api.aws.com/demo-testing/api/profile",
"protocol": "https",
"host": [
"api",
"aws",
"com"
],
"path": [
"demo-testing",
"api",
"profile"
]
,
"response": []
]
它仍然在抱怨未知的编码。我尝试使用file -i or file -I
来获取文件的编码。所有文件都以utf-8
或us-ascii
编码
[Container] 2019/02/27 06:26:34 Running command file -i APITesting.json
APITesting.json: text/plain; charset=utf-8
[Container] 2019/02/27 06:26:34 Running command file -i env.json
env.json: text/plain; charset=us-ascii
[Container] 2019/02/27 06:26:34 Running command file -i demo.json
env.json: text/plain; charset=utf-8
一切都在 Docker 容器中运行,但我认为这并不重要。
我从 Newman Github 搜索了所有问题,但没有运气。
我还搜索了与未知编码相关的所有内容:Google、*** 和 AWS 论坛中的 latin1,但没有结果。
我已经花了两天时间。有人知道吗?
非常感谢!!!
坤
【问题讨论】:
我在 Jenkins 上有同样的问题。如果找到解决方案,请提及我。谢谢 @Mustafa Mohammadi 是的,我找到了解决方案。所以 Newman 有一个功能,您可以使用 URL 运行 testingJSON 文件。例如:newman run URL/APITesting.json
我希望它也能解决您的问题。
【参考方案1】:
如果有人遇到这种情况,您可以使用以下命令将 UTF8 更改为带有 BOM 的 UTF8:
sed -i '1s/^\xEF\xBB\xBF//' your-file.json
这为我们解决了问题。
【讨论】:
以上是关于Newman:未知编码:在 AWS CodeBuild 上运行 Newman cli 时弹出 latin1的主要内容,如果未能解决你的问题,请参考以下文章
安装提供程序“aws”时出错:openpgp:未知实体的签名
AWS ElasticBeanstalk Terraform DisableIMDSv1 未知配置设置
错误 2005 (HY000):aws 中的未知 MySQL 服务器主机
如何设置AWS CodeDeploy和EC2 CodeDeploy安全环境