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



我有一个简单的 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

当我运行它时,它返回{"代码":"415","状态":"不支持的媒体类型"}。控制台输出显示开机自检期间设置了正确的内容类型。

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

And header Content-Type = 'application/json'

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

任何帮助,不胜感激。

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

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

如何使用空手道仅发送"应用程序/json"作为内容类型标头?

发布此内容以帮助将来的其他人。

很简单。尝试在后台使用它。

* def charset = null

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

相关内容

最新更新