WSO2 API Manager 4.0调用.NET Core API POST请求报404/方法不允许
WSO2 APIM调用.NET Core API报错排查解决方案
优先排查路径拼接错误
你当前配置的API上下文为/api/v1,后端服务端点为http://localhost:5000/api/BigData,发起请求的网关路径为http://localhost:8280/api/v1/api/BigData。WSO2的转发逻辑为「后端端点 + 网关请求中的资源路径后缀」,因此最终转发到后端的地址为http://localhost:5000/api/BigData/api/BigData,和你实际的后端接口路径不匹配,自然返回404 Not Found。
修正方案二选一:- 把WSO2中配置的后端端点改为
http://localhost:5000,WSO2会自动把/api/BigData后缀拼接上去,最终转发地址为正确的http://localhost:5000/api/BigData - 把调用的网关路径改为
http://localhost:8280/api/v1,不需要额外追加/api/BigData后缀
多数情况下405 Method Not Allowed是路径错误的衍生问题:后端匹配不到路径时返回的默认错误页仅支持GET请求,你用POST访问错误路径就会触发405,路径修正后该问题通常会自动消失
- 把WSO2中配置的后端端点改为
校验WSO2 API资源方法配置
如果路径修正后仍出现405错误,进入WSO2 APIM Publisher控制台,找到对应API的资源配置页,确认对应路径的资源是否勾选了POST方法,同时确认是否开启了OPTIONS方法,避免.NET Core CORS预检请求被拦截。校验.NET Core API侧配置
- 确认BigData接口的
[HttpPost]特性、[Route]路由特性配置是否和预期的/api/BigData一致 - 确认.NET Core跨域配置已放行WSO2网关地址
http://localhost:8280,避免跨域拦截导致的请求错误 - 可在.NET Core侧添加全局请求日志,打印所有收到的请求地址、方法、头部,确认WSO2转发的请求是否符合预期
- 确认BigData接口的
校验WSO2网关转发日志
如需进一步定位问题,可开启WSO2 APIM网关访问日志:找到WSO2安装目录下的repository/conf/log4j2.properties文件,将access_log的日志级别调整为DEBUG,重启网关后发起请求,查看日志中转发到后端的完整请求信息,确认路径、方法、头部是否正确。
内容的提问来源于stack exchange,提问作者vikashsingh9
相关产品推荐
相关产品推荐

