httpRequest类中的intranet站点



我们正在httpRequest类的setEndpoint中设置一个intranet站点。当最后一行执行时,它返回一个错误,上面写着:System。CalloutException:读取超时。如果我通过任何其他网站,如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);

Salesforce的所有请求都将从其众所周知的IP地址池中发出。

  1. 您的Intranet站点是否可以从外部访问?如果你可以自己在浏览器中粘贴URL,这并不意味着SF可以访问它!例如,您可以从家中访问您的内联网吗(无需使用VPN、Citrix等手段)
  2. 读取超时可以增加。将其设置为1分钟,然后看看会发生什么:req.setTimeout(60000);
  3. 如果它仍然超时,我怀疑防火墙的配置只是为了解决问题。就像一个黑洞,不会返回你"未经授权,你有用户名和密码吗",没有任何东西表明这个地址实际上是有效的。请联系您的网络管理员,询问他是否可以将Salesforce IP列入白名单
  4. 当然,您可能不想让每个Salesforce客户都可以访问它。这取决于您是否需要通过一些身份验证机制,或者是否需要代理。将需要代理,特别是当您的intranet站点需要NTLM身份验证时(大致来说与Windows域有关——当然Salesforce服务器不会与您的intranet服务器位于同一LAN中)

最新更新