この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

HTTP クラス

これらのクラスは一般的な HTTP 要求/応答の機能を表示します。

  • Http クラス: HTTP 要求と応答を開始するにはこのクラスを使用します。
  • HttpRequest クラス: プログラムに基づいて GET、POST、PUT、および DELETE のような HTTP 要求を作成するには、このクラスを使用します。
  • HttpResponse クラス: HTTP で返された HTTP の応答を処理するには、このクラスを使用します。
HttpRequest クラスと HttpResponse クラスは、次の要素をサポートします。
  • HttpRequest:
    • GET、POST、PUT、DELETE、TRACE、CONNECT、HEAD、および OPTIONS などの HTTP 要求型
    • 要求ヘッダー (必要な場合)
    • 読み取りおよび接続タイムアウト
    • リダイレクト (必要な場合)
    • メッセージ本文の内容
  • HttpResponse:
    • HTTP 状況コード
    • 要求ヘッダー (必要な場合)
    • レスポンスボディの内容

次の例は、getContent メソッドに送られた url の値によって指定された外部サーバへの HTTP GET 要求を示します。この例では、返されたレスポンスボディへのアクセスについても示します。

1public class HttpCalloutSample {
2
3  // Pass in the endpoint to be used using the string url
4  public String getCalloutResponseContents(String url) {
5
6    // Instantiate a new http object
7    Http h = new Http();
8
9     // Instantiate a new HTTP request, specify the method (GET) as well as the endpoint
10    HttpRequest req = new HttpRequest();
11    req.setEndpoint(url);
12    req.setMethod('GET');
13
14    // Send the request, and return a response
15    HttpResponse res = h.send(req);
16    return res.getBody();
17  }
18}

前の例は、同期して実行されます。つまり、外部 Web サービスが応答を返すまで、それ以上の処理は発生しません。または、@future アノテーションを使用してコールアウトを非同期に実行することもできます。

Apex またはその他の機能を使用してエンドポイントまたはリダイレクトエンドポイントから外部サーバにアクセスするには、Salesforce ユーザインターフェース内の認証されたリモートサイトのリストにリモートサイトを追加する必要があります。このためには、Salesforce にログインし、[設定] から、[クイック検索] ボックスに「リモートサイトの設定」と入力して [リモートサイトの設定] を選択します。

  • AJAX プロキシは、リダイレクトと認証チャレンジ (401/407 応答) を自動的に処理します。AJAX プロキシの詳細は、AJAX Toolkit のマニュアルを参照してください。
  • URL の代わりに、エンドポイントを指定ログイン情報として設定できます。指定ログイン情報では、1 つの定義にコールアウトエンドポイントの URL と必要な認証パラメータを指���します。Apex コールアウトで指定ログイン情報をコールアウトエンドポイントとして指定するすべての認証が Salesforce によって管理されるため、コードでこれらを行う必要はありません。外部サイトへの Apex コールアウトに必要なリモートサイト設定もスキップできます。「setEndpoint(endpoint)」の例を参照してください。指定ログイン情報を設定するには、Salesforce ヘルプの「指定ログイン情報の定義」を参照してください。

メモ

HttpRequest で作成されたリクエストボディ内、またはHttpResponse でアクセスされたレスポンスボディ内の XML または JSON コンテンツを解析するには、XML クラスまたは JSON クラスを使用します。