我尝试在WSO2教程之后使用REST API在现有的微服务项目中使用WSO2 API Manager 1.10.0。
我已将它安装在我的计算机上以及我的应用程序的副本上,并将AM配置为管理我的资源请求(GET,POST和DELETE),但我总是获得一个"响应代码0"使用响应标头
{
"error": "no response from server"
}
尝试使用Advanced REST Client联系我的应用程序我获得了200,结果正确。
我的API在标头内部使用一个令牌来验证传递的用户,因此我实现了一个没有身份验证的虚拟API,但我仍然遇到同样的问题。
我已经尝试使用我们的测试服务器的云版本,但仍然获得相同的结果。 我找到了这个指南http://wso2.com/blogs/cloud/video-setting-up-custom-url-for-api-store-and-gateway/,但我不知道这是否可以解决localhost中的问题。
答案 0 :(得分:1)
在WSO2 API Cloud中设置自定义网址不会有帮助。那是出于不同的目的。你可以做两件事。
如果您对继续使用云版本感兴趣,可以向他们寻求帮助。您可以发送支持请求,云团队也会提供帮助。
您可以对本地实例进行故障排除。这样做时,首先尝试通过curl调用api,看看它是否得到响应。有时,你的api可以正常工作,但由于某些原因,结果可能无法到达api控制台。
如果卷曲效果正常,您可以查看日志以查看是否有任何错误。还有一些问题:
答案 1 :(得分:1)
您是否尝试使用swagger控制台(或任何Web应用程序)访问api。您可能会遇到此问题的原因有很多。一个可能是未在浏览器中安装的证书。
如果发生这种情况,您应该在api管理器控制台中看到一些错误日志(未找到与CA相关的内容)。首先,您可以复制后端URL(swagger控制台显示它用于发送请求的URL)并将其粘贴到新的浏览器窗口并将证书安装到浏览器。
您也可以使用像firebug这样的工具来查看问题并查看请求。 (它将显示未连接AM的错误)
答案 2 :(得分:1)
最后我发现了这个问题:API Manager不接受纯文本响应,使用JSON进行响应可以解决问题。
使用其他媒体类型(如XML或TEXT / HTML)报告406,文本为plain,返回错误0。