当前位置: 首页 > 知识库问答 >
问题:

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

程天佑
2023-03-14

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

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

感谢您的帮助。

共有3个答案

郑俊彦
2023-03-14

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

叶茂才
2023-03-14

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

* def charset = null
匡翰
2023-03-14

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

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

我如何使用空手道发送“application/json”作为内容类型头?

张贴这个是为了将来帮助别人。

 类似资料:
  • 问题内容: 我正在使用JSON请求调用REST服务,并且它以错误响应。 请求内容类型设置为。 如果我在请求中不包含JSON对象,则效果很好。我正在使用JSON库。 我尝试使用几个不同的库,但这没什么区别。 有人可以帮我解决这个问题吗? 这是我的代码: 的值为: 问题答案: 不确定原因,但是从中 删除行解决了该问题。

  • 我用JSON请求调用REST服务,它用HTTP 415“不支持的媒体类型”错误进行响应。 请求内容类型设置为。 如果我在请求中不包含JSON对象,它就可以正常工作。我正在使用JSON库。 我试着使用了几个不同的库,但没有什么不同。 有人能帮我解决这个问题吗? 这是我的代码: 是:

  • 我必须做的是,我必须在给定的URL中发布JSON数据,其中JSON看起来像 和我的功能 当我张贴它的时候;我得到一个错误 “远程服务器返回错误:(415)不支持的媒体类型。” 有人知道吗;我错在哪里?

  • 我正在使用Restet,我想知道如果设置了ServerResource实体类型,例如,对于这种类型的实体,是否可能: 我们如何能够在不需要传递所有字段的情况下发布呢?在本例中,我们只想从客户端请求传递“name”,但这样做会引发

  • 问题内容: 自数小时以来,我一直在尝试纠正http错误,但它仍显示不支持的页面。我在邮递员中添加标题。 这是我的Java代码 这是我的档案 问题答案: 通过和如何在响应流和请求流之间对对象进行序列化和反序列化。 将会发生的是,将从提供者的注册表中进行搜索,以查找可以处理的媒体类型。如果找不到,则Jersey无法处理该请求,并将发送415不支持的媒体类型。通常,你还应该在服务器端记录一个异常。不知道