加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用URLEndpoint通过代理进行SOAP连接

发布时间:2020-12-15 00:39:26 所属栏目:Java 来源:网络整理
导读:我不得不更新以前从外部Web服务请求SOAP响应的 Java应用程序.此服务位于我们的防火墙之外,现在要求我们通过代理而不是直接访问URL. 目前,Java App使用URLEndpoint,该URL为URL提供字符串.通常当我通过代理获取URL时,我创建一个如下所示的URL: URL url = new
我不得不更新以前从外部Web服务请求SOAP响应的 Java应用程序.此服务位于我们的防火墙之外,现在要求我们通过代理而不是直接访问URL.

目前,Java App使用URLEndpoint,该URL为URL提供字符串.通常当我通过代理获取URL时,我创建一个如下所示的URL:

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

问题是URLEndpoint只为URL添加一个字符串,我尝试使用toExternalForm()将URL转换为字符串,但它使URL格式不正确.

有什么想法解决这个问题吗?

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

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

任何帮助赞赏.

解决方法

这不是代理的工作方式.代理的工作方式是您使用正常的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");

那么你的代码理想情况下应该是“Just Work”.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读