- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我不得不更新以前的 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/
我不得不更新以前的 Java 应用程序,该应用程序从外部 Web 服务请求 SOAP 响应。此服务在我们的防火墙之外,现在需要我们通过代理而不是直接访问 URL。 目前,Java 应用程序使用 URL
我是一名优秀的程序员,十分优秀!