如何解决错误 415 不支持 GET 方法的媒体类型
我目前正在学习 Mulesoft Mule 4 基础课程,并已在运行时管理器上部署了一个应用程序。
当我在 Runtime Manager 上查看我的应用程序日志和 Anypoint Studio 的日志时,我在测试 GET HTTP 请求时看到了上述“不支持的媒体类型”错误。我在 ARC 中测试时也遇到此错误。
当我查看 Mule 调试器和 Anypoint Studio 中的负载时,我看到 mediaType = */* charset = UTF-8
我认为不需要为 GET 请求添加这个,那么我该如何解决这个问题?
我的 RAML 文件:
#%RAML 1.0
title: session-2
types:
newsProperties: !include schemas/newsDataType.raml
/search:
get:
headers:
Accept:
default: application/json
queryParameters:
keyword:
type: string
minLength: 3
maxLength: 10
responses:
200:
body:
application/json:
example: !include examples/searchExample.raml
400:
body:
application/json:
example:
{"message": "Search query too long"}
/news:
post:
queryParameters:
country:
required: false
body:
application/json:
type: newsProperties
responses:
201:
body:
application/json:
example: !include examples/searchExample.raml
/sportsNews:
put:
body:
application/json:
type: newsProperties
最近在网上搜索并尝试了许多我见过的不同解决方案后添加了 /search resource GET 方法中的标头,但我仍然遇到相同的错误。任何帮助将不胜感激。
谢谢!
解决方法
可能您没有将 Content-Type 标头设置为 application/json
并且 API 实现需要它。
你好,尝试包含一个 json 示例而不是 raml 示例:
!include examples/searchExample.raml 将其转换为包含 json 示例。
!include examples/searchExample.json
,我遇到了同样的问题,我通过在路由器 (apikit:config) 上映射端点来解决它。 然后我发现设置到路由器的名称在端点流上是不同的,例如:
- 流名称:get:(userId):api-config
- 路由器名称:users-api-config
在流上固定名称或在路由器上映射方法解决此问题
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。