HTTP のクラス
これらのクラスは HTTP 要求および応答の機能を表示します。
- Http クラス: HTTP 要求と応答を開始するにはこのクラスを使用します。
- HttpRequest クラス: プログラムに基づいて GET、POST、PATCH、PUT、および DELETE のような HTTP 要求を作成するには、このクラスを使用します。
- HttpResponse クラス: HTTP で返された HTTP の応答を処理するには、このクラスを使用します。
HttpRequest クラスと HttpResponse クラスは、次の要素をサポートします。
- HttpRequest
- GET、POST、PATCH、PUT、DELETE、TRACE、CONNECT、HEAD、および OPTIONS などの HTTP 要求型
- 要求ヘッダー (必要な場合)
- 読み取りおよび接続タイムアウト
- リダイレクト (必要な場合)
- メッセージ本文の内容
-
HttpResponse
- HTTP 状況コード
- 応答ヘッダー (必要な場合)
- レスポンスボディの内容
次の例では、url パラメータで getCalloutResponseContents メソッドに渡される外部サーバへの 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 アノテーションを使用してコールアウトを非同期に実行することもできます。
次の例では、url パラメータで getPostCalloutResponseContents メソッドに渡される外部サーバへの HTTP POST 要求を行います。Your_JSON_Content は、コールアウトで送信する JSON コンテンツに置き換えます。
1public class HttpPostCalloutSample {
2
3 // Pass in the endpoint to be used using the string url
4 public String getPostCalloutResponseContents(String url) {
5
6 // Instantiate a new Http object
7 Http h = new Http();
8
9 // Instantiate a new HTTP request
10 // Specify request properties such as the endpoint, the POST method, etc.
11 HttpRequest req = new HttpRequest();
12 req.setEndpoint(url);
13 req.setMethod('POST');
14 req.setHeader('Content-Type', 'application/json');
15 req.setBody('{Your_JSON_Content}');
16
17 // Send the request, and return a response
18 HttpResponse res = h.send(req);
19 return res.getBody();
20 }
21}エンドポイントまたはリダイレクトエンドポイントから外部サーバにアクセスするには、認証されたリモートサイトのリストにリモートサイトを追加しておきます。Salesforce にログインし、[設定] から、[クイック検索] ボックス���「リモートサイトの設定」と入力し、[リモートサイトの設定] を選択します。
HttpRequest で作成されたリクエストボディ内、または HttpResponse でアクセスされたレスポンスボディ内の XML または JSON コンテンツを解析するには、XML クラスまたは JSON クラスを使用します。