全部产品
云市场

调试或者压测时出现 406 是什么原因?

更新时间:2019-03-06 10:10:12

:调试或者压测时出现 406 是什么原因?

:在调试时,请求出现 406 报错,一般是请求构建的 Header 中的 Accept 字段设置错误导致的。

406报错

Accept 代表发送端(在这里表示 PTS)希望接受的数据类型。

Content-Type 代表发送端(在这里表示 PTS)发送的实体数据的数据类型。在 PTS 里 Body 中设置的 Content-Type 会自动同步到 Header 中。如果 Header 中的 Accept 不符合事先约定的内容,就会返回 406 错误。

header中的accept设置

解决办法

需要确认服务端能验证通过的 Accept 类型,或者多尝试下设置不同的 Accept 类型 Value

Accept 参考信息

以下是 Accept 的格式类型和匹配顺序,供参考。

常见的格式类型如下

  • text/html : HTML格式
  • text/plain :纯文本格式
  • text/xml : XML格式
  • image/gif :gif图片格式
  • image/jpeg :jpg图片格式
  • image/png:png图片格式
  • application/xhtml+xml :XHTML格式
  • application/xml : XML数据格式
  • application/atom+xml :Atom XML聚合格式
  • application/json : JSON数据格式
  • application/pdf :pdf格式
  • application/msword : Word文档格式
  • application/octet-stream : 二进制流数据,例如常见的文件下载
  • application/x-www-form-urlencoded : <form encType=””> 中默认的 encType,form 表单数据被编码为key/value 格式发送到服务器(表单默认的提交数据的格式)。

Accept 应用规则如下

  • 当 Accept 头有 application/xmltext/htmlapplication/json,将按照如下顺序进行 produces 的匹配:

    application/xml > text/html > application/json

  • 当 Accept 头有 application/xml;q=0.3application/json;q=0.8text/html,将按照如下顺序进行 produces 的匹配:

    text/html > application/json > application/xml

    参数为媒体类型的质量因子,数字越大则优先权越高(从 0 到 1)。

  • 当 Accept 头有 */*text/*text/html,将按照如下顺序进行 produces 的匹配:

    text/html > text/* > */*