【发布时间】:2018-12-19 13:00:40
【问题描述】:
我有一台服务器正在尝试对外部 IP 进行 POST 调用,不幸的是,如果我直接进行调用,它会被内部防火墙阻止。
但是我们确实有一个允许出站 http 流量的代理,如果我首先通过这个代理重定向 POST 调用,那么它应该会成功。
进行调用的客户端使用 javax.ws.rs.client.WebTarget 对象以调用格式创建/引导 POST:
WebTarget.path("URL_HERE").request().post(ENTITY_HERE).readEntity(RETURN_TYPE_HERE.class);
但是我在 javax ws 文档中看不到通过代理重定向此调用(例如通过 host = proxy_domain 和 port = 1)。
其次,有没有办法确定代理重定向的范围?例如,我可以在网上看到一些关于为全局设置更新 wsdl 的类似文档——但我只希望这发生在这个单一的 POST 调用中。
编辑:这个 Q 与之前关于代理调用的 Q 相同,尽管对那个 Q 的回答还不够——我在此处向 cmets 添加了一条关于添加获取'via' 调用已实例化。
这里提到的解决方案是按照以下方式创建配置:
ClientConfig config = new ClientConfig().connectorProvider(new ApacheConnectorProvider()) .property(ClientProperties.PROXY_URI, "http://PROXY_ADDRESS:PROXY_PORT");
使用泽西岛 2.27。
【问题讨论】:
-
@locus2k - 可能是 :) 让我看看这个解决方案是否能解决它。
-
好的,所以解决方案最终相似。但是,使用默认的 ConnectorProvider 不起作用 - 我最终得到了这样的客户端配置: ClientConfig config = new ClientConfig() .connectorProvider(new ApacheConnectorProvider()) .property(ClientProperties.PROXY_URI, "PROXY_ADDRESS:PROXY_PORT"); 没有 Apache连接器无法“通过”(通过查看球衣记录,如果我使用默认值,则没有记录“通过”)。
标签: java rest post javax.ws.rs