0

httpRequest クラスの setEndpoint にイントラネット サイトを設定しています。最後の行が実行されると、System.CalloutException: Read timed out というエラーが返されます。www.google.com のような他の Web サイトを渡すと、これは完全に正常に機能します。エンドポイント URL をイントラネット サイトに設定する方法はありますか?

    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. イントラネット サイトは外部からアクセスできますか? URL を自分でブラウザに貼り付けることができても、SF がアクセスできるとは限りません。たとえば、自宅から (VPN や Citrix などの手段を使用せずに) イントラネットにアクセスできますか?
  2. 読み取りタイムアウトを増やすことができます。1 分に設定して、何が起こるか見てみましょう。req.setTimeout(60000);
  3. それでもタイムアウトする場合は、ファイアウォールが問題を飲み込むように構成されていると思われます。ブラック ホールのように、「許可されていません。ユーザー名とパスワードをお持ちですか」というメッセージは返されず、このアドレスが実際に有効であることを示すものは何もありません。ネットワーク管理者に連絡して、 Salesforce の IPをホワイトリストに登録できるかどうか尋ねてください。
  4. もちろん、すべての Salesforce クライアントがアクセスできるようにしたいとは思わないでしょう。いくつかの認証メカニズムを渡す必要があるかどうか、またはプロキシが必要であると判断するかどうかは、あなた次第です。イントラネット サイトで NTLM 認証が必要な場合は特に、プロキシが必要になります (大まかに言えば、Windows ドメインに関連します。もちろん、Salesforce サーバーはイントラネット サーバーと同じ LAN にはありません)。
于 2012-11-30T13:22:45.323 に答える