Web services HTTP 406和415错误代码

Web services HTTP 406和415错误代码,web-services,http,http-headers,Web Services,Http,Http Headers,我正在编写一个只接受json,也只输出json的web服务 因此,如果请求任何其他格式,我需要返回相应的状态代码 看来我有两个选择: 406-不可接受 415-不支持的媒体类型 如果有人能告诉我这两个代码的语义,那就太好了。406是在服务器无法基于接受请求头做出响应时返回的(即他们有一个接受头,表示他们只需要XML) 当在请求中发送的实体(POST或PUT中的内容)具有不受支持的媒体类型(即,它们发送XML)时,服务器返回415 所以。。406当你不能发送他们想要的,415当他们发送你不想要的

我正在编写一个只接受json,也只输出json的web服务

因此,如果请求任何其他格式,我需要返回相应的状态代码

看来我有两个选择:

  • 406-不可接受
  • 415-不支持的媒体类型

  • 如果有人能告诉我这两个代码的语义,那就太好了。

    406是在服务器无法基于接受请求头做出响应时返回的(即他们有一个接受头,表示他们只需要XML)

    当在请求中发送的实体(POST或PUT中的内容)具有不受支持的媒体类型(即,它们发送XML)时,服务器返回415

    所以。。406当你不能发送他们想要的,415当他们发送你不想要的


    希望有帮助

    406用于客户端使用Accept标头请求不受支持的内容类型(在您的情况下,是JSON以外的任何内容)的响应。另一方面,当客户端以不受支持的内容类型发布或放置数据时,使用415

    简而言之:如果无法以预期格式输出,请使用406;如果不支持输入格式,请使用415

    参见RFC 2616,了解其定义:引用:

    406不可接受

    由请求标识的资源 只能生成响应 包含内容的实体 不可接受的特性 根据发送的accept标头 在请求中

    当客户查询您的服务时,请检查它发送的
    Accept*
    标题;如果它与
    应用程序/json
    (或通配符,例如
    */*
    )不匹配,则返回此值。响应应该表明“我们这里只提供JSON”

    415不支持的媒体类型

    服务器拒绝为服务器提供服务 请求,因为 请求的格式不受支持 由请求的资源为 请求的方法

    仅返回
    415 Unsupported Media Type
    应该是“客户端发送了非JSON的内容,无法使用该内容”的最小响应;不确定是否有标题指示“您需要发送JSON”

    RFC2616帮助您

    我会选择415,它非常适合你的描述

    编辑:哦。集成电路。“请求实体的格式不受请求资源的支持”。因此,如果您有一个包含内容的请求,而该内容的类型错误,您应该抛出415-response。

    • 406如果发送了
      Accept
      标题,则无法填写
    • 415如果发送了
      内容类型
      ,则无法使用

    他同时需要两种不同的场景。你可以在不符合规格的情况下回答他讨厌的问题。这些问题非常擅长得分,但需要快速正确的回答:/如何获取“可服务”内容类型列表?