WSO2 APi管理器响应代码0



我正试图在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/但我不知道这是否可以解决本地主机中的问题。

在WSO2 API云中设置自定义url没有帮助。那是为了另一个目的。你可以做两件事。

  1. 如果你有兴趣继续使用云版本,你可以从他们那里获得帮助。您可以发送支持请求,云团队将提供帮助。

  2. 您可以对本地实例进行故障排除。在执行此操作时,首先,尝试通过curl调用您的api,看看它是否得到响应。有时,您的api可以正常工作,但由于某些原因,结果可能无法到达api控制台。

如果curl工作正常或不正常,您可以检查日志以查看是否打印了任何错误还有一些问题:

  1. 您的后端服务是通过http还是https公开的
  2. 如果它是https,那么如果它的证书不是CA签名的证书,API管理器将在握手过程中失败。如果是这样,则必须将证书添加到api管理器client-truststore.jks
  3. 在云场景中,您的后端应该可以从互联网访问,并且证书故事对云也有效

您是否试图使用swagger控制台(或任何web应用程序)访问api。你可能会遇到这个问题有几个原因。其中一个可能是浏览器中未安装证书。

如果发生这种情况,您应该在api管理器控制台中看到一些错误日志(找不到与CA相关的内容)。首先,您可以复制后端url(swagger控制台显示用于发送请求的url),并将其粘贴到新的浏览器窗口中,然后将证书安装到浏览器中。

您还可以使用firebug之类的工具来了解这个问题,并检查请求。(它将显示未连接AM的错误)

最后我发现了问题:API管理器不接受纯文本响应,使用JSON响应解决了问题。

使用诸如XML或TEXT/HTML之类的其他中介类型,它报告406,使用纯文本,它返回错误0。

最新更新