1

我们的 API 由 WS02 API 管理器管理,但是它将传出请求构建到配置的端点 URL 的方式似乎存在一些问题。当我们向 API 管理器发出请求时,我们会从端点看到这种错误:

Cannot bind to address "http://<HOST>:<PORT>http://<HOST>:<PORT>/<RESOURCE>

该 URL 显然不正确,因为它在 URL 的主机部分之前添加了两次。我们在 API 管理器和端点之间放置了一个调试代理,它显示传出请求如下所示:

GET http://<HOST>:<PORT>/<RESOURCE> HTTP/1.1
...
Host: <HOST>:<PORT>

主机出现在第一行是不正常的;这应该来自“主机”标题。但事实上,我们得到上述错误是有道理的。请注意,当我们通过 Nginx 之类的东西代理它时,它工作正常,但我们实际用于端点的服务器不喜欢它。我猜 Nginx 的编写方式是为了解决这种(技术上不正确的)请求。

4

1 回答 1

1

我们正在将属性“POST_TO_URI”添加到我们的突触 API 配置中,以使传出 URL 成为完整的 URL [1]。这在通过代理服务器发送消息时很有用。您可以通过修改 AM_HOME/repository/deployment/server/synapse-configs/default/api/ 目录中的 API 来删除该属性。删除向此类后端服务器发送请求的相关 API 中的以下属性。

<property name="POST_TO_URI" value="true" scope="axis2"/>

[1] https://docs.wso2.org/display/ESB460/HTTP+Transport+Properties

于 2014-03-18T06:27:32.283 回答