2012-11-30 33 views
0

我们正在httpRequest类的setEndpoint中设置Intranet站点。当最后一行执行时,它返回一个错误,它表示:System.CalloutException:读取超时。 如果我通过任何其他网站,如www.google.com,这工作得很好。任何想法如何将端点URL设置为Intranet站点?httpRequest类中的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); 
+0

它应该完全一样。实际上,应用程序并不知道网站的位置,只是将请求转发到您的OS网络模块。检查网站是否可访问,并且不需要额外的东西(例如用户验证) – SJuan76

+0

请记住,您的网站可能需要身份验证,但通过网络访问时,会自动从Windows登录或单一登录中检索凭据。 – SJuan76

+0

如果我在浏览器中粘贴该网址,页面会正常加载,我可以看到该网站的内容。另外,如果我从家里访问这个网站,它不会打开。它只在办公室开放......不知道在这里可以做什么...... – Anamadeya

回答

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中),则需要使用代理服务器。
相关问题