Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Karate 正确设置内容类型时如何解决错误415不支持的媒体类型_Karate - Fatal编程技术网

Karate 正确设置内容类型时如何解决错误415不支持的媒体类型

Karate 正确设置内容类型时如何解决错误415不支持的媒体类型,karate,Karate,我有一个简单的POST请求,它需要一个json内容类型头和一个类似 { oneNbr: "2016004444", twoCode: "@@@", threeNbr: "STD PACK", sheetTitle: "010000", codeType: "AF14" } 当我在Postman中运行它时,它按预期运行,返回200个状态和预期的响应 以下是同样的空手道脚本: Scenario: Sample test * def payload =

我有一个简单的POST请求,它需要一个json内容类型头和一个类似

{
   oneNbr: "2016004444",
   twoCode: "@@@",
   threeNbr: "STD PACK",
   sheetTitle: "010000",
   codeType: "AF14"
}
当我在Postman中运行它时,它按预期运行,返回200个状态和预期的响应

以下是同样的空手道脚本:

  Scenario: Sample test
    * def payload =
      """
    {
       oneNbr: "2016004444",
       twoCode: "@@@",
       threeNbr: "STD PACK",
       sheetTitle: "010000",
       codeType: "AF14"
    }
      """
    Given path '/my_end_point/endpoint'
    And request payload
    When method post
    Then status 200
当我运行它时,它返回{“code”:“415”,“status”:“Unsupported Media Type”}。控制台输出显示在POST期间设置了正确的内容类型

即使我在脚本中专门设置了内容类型,415仍然返回,例如

And header Content-Type = 'application/json'


感谢您的帮助

尝试添加
*头Accept='application/json'
头。空手道和邮递员之间的一个区别是,邮递员试图变得聪明,自动添加一个
接受
标题,而空手道没有。

我们进行了一些调试,发现空手道会自动将“charset=UTF-8”附加到内容类型标题。API不需要字符集

找到以下帖子并解决了问题:


发布此消息以帮助他人。

很简单。试着在你的背景中使用这个

* def charset = null

我也试过了。只是再试一次。这并不能解决问题。有没有办法进一步调试此类问题?您能告诉服务器接收的内容类型吗?我建议在邮递员控制台中查找邮递员发出的完整请求/标题,并将其与空手道控制台中记录的请求进行比较。根据您的描述,可能是您的服务器因其他原因而崩溃。@Alex J感谢您的建议。他做到了这一点,并没有带来任何新的结果。还尝试了另一个rest工具Advanced rest Client进行比较。API调用在那里运行良好。顺便说一句,您的API很可能不符合标准。
* def charset = null