0

我们在 httpRequest 类的 setEndpoint 中设置一个内网站点。当最后一行执行时,它返回一个错误,上面写着: 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);
4

1 回答 1

1

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

  1. 您的 Intranet 站点是否可以从外部访问?如果您可以在浏览器中自己粘贴 URL,并不意味着 SF 可以访问它!例如,您可以在家中访问您的 Intranet(不使用 VPN、Citrix 等方式)吗?
  2. 可以增加读取超时。将其设置为 1 分钟,看看会发生什么:req.setTimeout(60000);
  3. 如果它仍然超时,我怀疑防火墙被配置为只是吞下问题。像黑洞一样,不会返回“未经授权,您是否有用户名和密码”,也不会显示此地址实际上是有效的。联系您的网络管理员并询问他是否可以将Salesforce IP列入白名单。
  4. 当然,您可能不想让每个 Salesforce 客户都可以访问它。如果您需要通过某些身份验证机制或决定您需要代理,这取决于您。特别是如果您的 Intranet 站点需要 NTLM 身份验证(粗略地说与 Windows 域相关 - 当然 Salesforce 服务器不会与您的 Intranet 服务器位于同一 LAN 中),则需要代理。
于 2012-11-30T13:22:45.323 回答