Newer Version Available
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 要求を示します。この例では、返されたレスポンスボディへのアクセスについても示します。
1swfobject.registerObject("clippy.codeblock-0", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17public class HttpCalloutSample {
18
19 // Pass in the endpoint to be used using the string url
20 public String getCalloutResponseContents(String url) {
21
22 // Instantiate a new http object
23 Http h = new Http();
24
25 // Instantiate a new HTTP request, specify the method (GET) as well as the endpoint
26 HttpRequest req = new HttpRequest();
27 req.setEndpoint(url);
28 req.setMethod('GET');
29
30 // Send the request, and return a response
31 HttpResponse res = h.send(req);
32 return res.getBody();
33 }
34}
35前の例は、同期して実行されます。つまり、外部 Web サービスが応答を返すまで、それ以上の処理は発生しません。または、@future アノテーションを使用してコールアウトを非同期に実行することもできます。
Apex またはその他の機能を使用してエンドポイントまたはリダイレクトエンドポイントから外部サーバにアクセスするには、Salesforce ユーザインターフェース内の認証されたリモートサイトのリストにリモートサイトを追加する必要があります。そのためには、Salesforce にログインし、[設定] から をクリックします。
HttpRequest で作成されたリクエストボディ内、またはHttpResponse でアクセスされたレスポンスボディ内の XML または JSON コンテンツを解析するには、XML クラスまたは JSON クラスを使用します。