无法使用Proxy Server使用Java登录Salesforce

时间:2017-04-19 20:59:14

标签: java salesforce

我编写了Java代码来登录Salesforce并在防火墙服务器上运行此代码。为此,由于防火墙,我必须在连接到Salesforce之前指定代理URL和代理端口。但是,我收到代理URL的unknownhostexception错误。如果我尝试使用代理设置通过curl登录,我可以连接。那怎么连接使用Java呢?任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

显然这个问题是由JVM配置引起的。我们必须配置JVM以使用代理设置,如下所示:

System.setProperty("http.proxyHost", crmProxyURL);
System.setProperty("http.proxyPort", crmProxyPort);

答案 1 :(得分:1)

根据您的HTTP库,系统设置可能不够或不需要。在Salesforce context中,很可能会尝试使用Jetty HTTP Client。在这种情况下,系统属性将被忽略,代理需要由Jetty客户端处理:

ProxyConfiguration proxyConfig = httpClient.getProxyConfiguration();
HttpProxy proxy = new HttpProxy("proxyHost", proxyPort);
proxyConfig.getProxies().add(proxy);

Apache HTTP Client,另一个受欢迎的选择,也使用自己的小机制:

 HttpHost proxy = new HttpHost("proxyHost", proxyPort, "https");
 RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
 HttpGet request = new HttpGet(someURL);
 request.setConfig(config);

有趣的是:可以指定使用http或https作为代理协议。

一般来说,我发现使用其中一个http客户端比JDK低级功能更容易。