httpRequest类中的Intranet站点

时间:2012-11-30 11:59:25

标签: java salesforce httprequest apex-code

我们在httpRequest类的setEndpoint中设置了一个Intranet站点。当最后一行执行时,它返回一个错误,说明:System.CalloutException:read timed out。 如果我通过任何其他网站,如www.google.com,这完全没问题。知道如何将端点URL设置为Intranet站点吗?

    string URL = 'some intranet website';
    Http http = new Http();
    HttpRequest req = new HttpRequest();
    req.setEndpoint(URL);
    req.setMethod('GET');
    HttpResponse res = http.send(req);

1 个答案:

答案 0 :(得分:1)

Salesforce的所有请求都将来自其众所周知的IP地址池。

  1. 您的Intranet网站是否可以从外部获取?如果您可以在浏览器中自己粘贴URL,则并不意味着SF可以访问它!例如,您可以从家中访问您的Intranet(不使用VPN,Citrix等)吗?
  2. 可以增加读取超时。将其设置为1分钟,看看会发生什么:req.setTimeout(60000);
  3. 如果还有超时,我怀疑防火墙配置为只是吞下问题。就像一个黑洞,不会让你“未经授权,你有用户名和密码”,没有任何迹象表明这个地址实际上是有效的。请与您的网络管理员联系,询问他是否可以将Salesforce IPs列入白名单。
  4. 当然,您可能不希望每个Salesforce客户端都可以访问它。如果您需要传递一些身份验证机制或决定您需要代理,则由您决定。如果您的Intranet站点需要NTLM身份验证(大致说与Windows域相关 - 当然Salesforce服务器不会与您的Intranet服务器位于同一LAN中),则需要代理。