Karate 无法设置多个标题-内容类型&;使用空手道时接受

Karate 无法设置多个标题-内容类型&;使用空手道时接受,karate,Karate,我尝试测试的请求有两个必需的头-内容类型:“application/json”和接受:“application/json” 当我在下面的场景中运行时,它会给我状态代码400,表示缺少强制头接受-这是正确的行为 Scenario: Validating test * configure headers = { Content-Type: 'application/json'} And url testURL And request { "abc": {"xyz": "fgfdgf"}}

我尝试测试的请求有两个必需的头-内容类型:“application/json”和接受:“application/json”

当我在下面的场景中运行时,它会给我状态代码400,表示缺少强制头接受-这是正确的行为

Scenario: Validating test

  * configure headers = { Content-Type: 'application/json'}
And url testURL
  And request { "abc": {"xyz": "fgfdgf"}}
  When method post
但是,当我在下面的场景中运行时,它仍然给我状态代码400,表示缺少必需的头内容类型-这是不正确的行为

Scenario: Validating test

  * configure headers = { Content-Type: 'application/json'}
And url testURL
  And request { "abc": {"xyz": "fgfdgf"}}
  When method post
场景:验证测试

  * configure headers = { Content-Type: 'application/json',Accept:'application/json'}
And url testURL
  And request { "abc": {"xyz": "fgfdgf"}}
  When method post
  Then status 200

有人能指出第二个场景中的错误吗?

请注意,
内容类型将由空手道自动设置,如果请求正文明显是JSON,则无需进行设置

您所犯的错误是,
-
字符作为JSON(JS)键名无效,因此可以这样做:

* configure headers = { 'Content-Type': 'application/json', Accept: 'application/json' }

请注意
内容类型

的引号。通过将字符集配置为null,此问题得以解决:

  • 配置字符集=null

默认情况下,字符集采用UTF-8。所以,为了显式定义内容类型,我们需要在后台将charset设置为null。

我用引号尝试了它,但它仍然不适用于我。如果我只设置了内容类型,那么它就工作了,但是如果我同时提供了内容类型和接受,那么它就不工作了。@Richa-也许这是您服务器上的一个错误:)但是我放弃了-是时候给您指出这些说明了,最好的是:这没有任何意义,您应该真正检查您是否有错误