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-8us-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安全环境

从 AWS S3 转移到 Google-Cloud-Storage “未知”失败

如何建立 AWs Systems Manager PortForwarding 会话?未知会话类型端口