HTTPで外部サイトから情報を取得する

目的

Webサービスでなく、REST形式のAPI経由で情報を取得できるサイトが増えてきました。今回は、HTTPで外部サイトから情報を取得する方法をご紹介します。

ポイント

サンプルコードを実行する前に、実行する組織でリモート・サイトの登録を行っておく必要がある。
[設定] > [管理者設定] > [セキュリティのコントロール] > [リモートサイトの設定]
ここで、接続先のURLを設定する。今回は価格.comAPIにアクセスするので、リモートサイトの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 接続を受け付けます