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

时间:2019-01-07 11:57:20

标签: karate

我要测试的请求具有2个必需的标头-Content-Type:'application / json'和Accept:'application / json'。

当我在以下情况下运行时,它会显示状态代码400,表示缺少必需的标头Accept(接受)-这是正确的行为。

Scenario: Validating test

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

但是,当我在这种情况下运行时,它仍然会向我提供状态代码400,表示缺少必需的标头Content-Type-这不是正确的行为。

场景:验证测试

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

有人可以建议第二种情况出什么问题吗?

2 个答案:

答案 0 :(得分:1)

请注意,Content-Type将由空手道自动设置,如果请求正文显然是JSON,则无需设置。

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

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

观察Content-Type周围的引号。

答案 1 :(得分:1)

通过将字符集配置为null解决了此问题:

  • 配置字符集= null

默认情况下,字符集被视为UTF-8。因此,为了显式定义content-type,我们需要在Background中将charset设置为null。