gpt4 book ai didi

java - 使用 URLEndpoint 通过代理的 SOAP 连接

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:21:22 24 4
gpt4 key购买 nike

我不得不更新以前的 Java 应用程序,该应用程序从外部 Web 服务请求 SOAP 响应。此服务在我们的防火墙之外,现在需要我们通过代理而不是直接访问 URL。

目前,Java 应用程序使用 URLEndpoint,它接受 URL 的字符串。通常,当我通过代理获取 URL 时,我会创建如下 URL:

URL url = new URL("http", "theproxy.com", 5555, finalUrl);

问题是 URLEndpoint 只接受一个字符串作为 url,我尝试使用 toExternalForm() 将 URL 转换为字符串,但它使 URL 格式错误。

关于解决这个问题的任何想法?

编辑:我不能使用 System.setProperty,因为它与 tomcat 中的一大堆其他 Java 应用程序一起运行。

第二次编辑:我无法设置系统属性,因为它会覆盖服务器上运行的所有其他应用程序,我无法使用 jsocks 作为我们通过不支持 socks4/5 的 squid 代理运行的代理

感谢任何帮助。

最佳答案

这不是代理的工作方式。代理的工作方式是您使用普通的 URL:

http://example.com/service

并且不是查找“example.com”和端口 80,而是将消息发送到您的代理主机 (http://theproxy.com:5555)。

Java 使用 http.proxyHost 和 http.proxyPort 系统属性内置代理处理。

所以在你的情况下你需要做:

System.setProperty("http.proxyHost", "theproxy.com");
System.setProperty("http.proxyPort", "5555");

那么理想情况下,您的代码应该“正常工作”。

Here是记录代理属性的页面。

关于java - 使用 URLEndpoint 通过代理的 SOAP 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4928272/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com