【发布时间】:2016-02-04 08:16:02
【问题描述】:
从 swagger.io 编辑器页面下载 Swagger Pet Store (Simple) 并做了一个 mvn jetty:run
在 Chrome 上打开 DevTools 并执行 GET 时,我没有看到设置了标头 Content-Type 字段。
这是在 GET /pets{id}
【问题讨论】:
-
图像中的所有标题有点难以看到。但是您在 HTML 响应中将内容类型设置为“META”标签,而不是 HTTP 标头,这可能是您收到错误页面这一事实的副作用。如果没有 REQUEST 标头,很难确定,但我认为它是在说“你要求 JSON,我不知道那是什么”
-
我的意思是 curl 的 REQUEST 标头。 DevTools 说“接受应用程序/xml”
-
是的,但是 devtools 请求标头根本没有设置内容类型。我发布此示例的原因是因为在我的 spring 控制器上的真实代码中,我得到:{"timestamp":1446597153755,"status":400,"error":"Bad Request","exception":"org.springframework. web.HttpMediaTypeNotSupportedException","message":"不支持内容类型'null'","path":"/hacker/api/mef/sca/v1/SCA_ETH_FDFr_EC/5"}
-
那是因为 REQUEST 中的标头不是“Content-Type”,而是“Accept”。 RESPONSE 具有“Content-Type”,并且 curl 输出在 META 标记中指定,而不是作为 HTTP 标头(未显示)。尝试在 curl 示例中使用“Accept: application/xml”。我怀疑 MIME 类型映射失败,并且 DevTools 显示 chrome 请求 application/xml
-
Header 请求中的 Content-Type 和 Accept 意味着 2 个不同的东西。在这种情况下,Content-Type 不存在,因此为空。 curl -X GET --header "Accept: application/json" --header "Content-Type: application/json" "xxxx" 不抱怨
标签: swagger swagger-ui springfox