HTTPで外部サイトから情報を取得する
ポイント
サンプルコードを実行する前に、実行する組織でリモート・サイトの登録を行っておく必要がある。
[設定] > [管理者設定] > [セキュリティのコントロール] > [リモートサイトの設定]
ここで、接続先のURLを設定する。今回は価格.comのAPIにアクセスするので、リモートサイトのURLとして
http://api.kakaku.com を登録する。
サンプルコード
public class ProductMessage { public String getMessageContent(){ // HTTP接続に必要名HTTP、HTTPRequestクラスを初期化する HTTP h = new HTTP(); HTTPRequest req = new HTTPRequest(); // 指定したURLにGETメソッドで接続する String url= 'http://api.kakaku.com/Ver1/BBSInfo.asp?ProductId=01309511986&SortOrder=Code&Filter=1'; req.setEndpoint(url); req.setMethod('GET'); // 実際に接続を行う HTTPResponse res = h.send(req); // HTTP Bodyを取得する return res.getBody(); } }
制限事項
接続先のポート番号には、以下の制限があります。
- 80: このポートは、HTTP 接続のみを受け付けます。
- 443: このポートは、HTTPS 接続のみを受け付けます。
-7000-10000 (7000 と 10000 も含む): これらのポートは、HTTP 接続または HTTPS 接続を受け付けます
参考資料
Force.com Apex Code Developer's Guide
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_restful_http_httprequest.htm#kanchor774