2012-11-30 63 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中),則需要使用代理服務器。
相關問題