Soracom

Users

ドキュメント
Home ドキュメント SORACOM Beam Getting Started

HTTPS テストサーバーに GET リクエストを送信する

Beam の HTTP エントリポイント と、ソラコムが用意する HTTPS テストサーバー を使って、Beam で GET リクエストを転送する際の動作を確認してみましょう。

なお、HTTPS テストサーバーを利用する際は、特別な設定は必要ありません。ここでは、HTTP エントリポイントの設定を追加して、デバイスから GET リクエストを送信します。

Unified Endpoint は GET リクエストに対応していません

Unified Endpoint は、GET リクエストに対応していません。curl http://uni.soracom.io のような GET リクエストを送信すると、HTTP ステータスコード 405 Method Not Allowed が返されます。

HTTPS テストサーバーは HTTP リクエストの種類によって動作が異なります

HTTPS テストサーバーは、HTTP リクエストの種類に応じて以下のようにレスポンスを返します。

HTTP リクエストの種類HTTPS テストサーバー (https://beamtest.soracom.io) のレスポンス
POST リクエストPOST リクエストの HTTP ボディ (ペイロード) に含まれる情報が加工されて返されます。
GET リクエストGET リクエストの HTTP ヘッダーに含まれる情報が加工されて返されます。
デバイスが GET リクエストを送信する先は HTTP エントリポイントです

デバイスが GET リクエストを送信する先は、HTTP エントリポイント (http://beam.soracom.io:8888) です。デバイスは、HTTPS テストサーバーの URL を意識する必要がないことがポイントです。

HTTP エントリポイントの設定を追加する

SIM グループに HTTP エントリポイントの設定を追加して、IoT SIM を SIM グループに所属させます。HTTPS テストサーバーを利用する際の HTTP エントリポイントの設定は、基本的には Unified Endpoint を利用する場合と同じです。詳しくは、HTTP エントリポイントの設定を追加する を参照してください。

また、Beam の HTTP エントリポイントでは、リクエストを転送するときにカスタムヘッダーを追加できます。ここでは、上記の参照先で設定した HTTP エントリポイントを編集します。

Beam の設定はグループに対して行います

ここでは、グループの設定を変更する操作のみを説明します。グループの仕組みやグループを作成する操作について詳しくは、グループ設定 を参照してください。

  1. SIM グループ画面で [SORACOM Beam 設定] をクリックします。

    SIM グループ画面を表示する操作について詳しくは、グループの設定を変更する を参照してください。

  2. HTTP エントリポイントの設定を追加する で作成した HTTP エントリポイントの [編集] をクリックします。

    カスタムヘッダ カスタムヘッダ

    「SORACOM Beam - HTTP 設定」画面が表示されます。

  3. [カスタムヘッダ][+追加] をクリックします。

  4. 以下のように設定します。

    項目説明
    [アクション]「追加」を選択します。
    [ヘッダ名]X-SORACOM-BEAM を入力します。
    [値]SUCCESS を入力します。

    カスタムヘッダ カスタムヘッダ

  5. [保存] をクリックします。

デバイスで HTTP エントリポイントに GET リクエストを送信する

HTTP エントリポイントに送信した GET リクエストは、下図のように Beam を経由して、HTTPS テストサーバーに転送されます。HTTPS テストサーバーは、転送された GET リクエストの HTTP ヘッダーに含まれる情報を加工してレスポンスを返します。

Beam の利用料金が発生します

Beam では、リクエストを送信するとリクエスト単位で利用料金が発生します。なお、Beam には無料利用枠があるため、無料利用枠内の利用であれば、Beam 利用料金が発生しません。詳しくは、SORACOM Beam の料金プラン を参照してください。

  1. 「HTTP エントリポイントを利用する設定を行った IoT SIM」を利用するデバイスで、HTTP エントリポイント (http://beam.soracom.io:8888) に GET リクエストを送信します。

    GET リクエストの例:

    $ curl http://beam.soracom.io:8888
    
    Hello SORACOM Beam Client IMSI:xxxxxxxxxxxxxxx SIM ID:xxxxxxxxxxxxxxxxxxx !
    
    == HTTP Headers ==
    HTTP_X_SORACOM_SIM_ID = xxxxxxxxxxxxxxxxxxx
    HTTP_X_SORACOM_IMSI = xxxxxxxxxxxxxxx
    HTTP_X_SORACOM_BEAM = SUCCESS
    

想定通りに動作しない場合は、エラーログを確認してください。詳しくは、エラーログを確認する を参照してください。

[IMSI ヘッダ]、[SIM ID ヘッダ]、[カスタムヘッダ] をオフにするとレスポンスに含まれなくなります

HTTP エントリポイントの設定を変更して [IMSI ヘッダ][SIM ID ヘッダ]、および [カスタムヘッダ] をオフにしてから、GET リクエストを送信すると、以下のようなメッセージが表示されます。

$ curl http://beam.soracom.io:8888
Hello Unknown Client...

== HTTP Headers ==
レスポンスを生成するのは HTTPS テストサーバーです

HTTP エントリポイントで [IMSI ヘッダ][SIM ID ヘッダ][カスタムヘッダ] などをオンにすると、リクエストの種類 (POST リクエスト、GET リクエストなど) によらず、リクエストが Beam で転送されるときにリクエストヘッダーが追加されます。

HTTPS テストサーバーに GET リクエストでリクエストヘッダー (x-soracom-sim-id: xxxxxxxxxxxxxxxxxxx など) を送信すると、HTTPS テストサーバーからのレスポンスボディにヘッダーの情報 (HTTP_X_SORACOM_SIM_ID = xxxxxxxxxxxxxxxxxxx など) が含まれます。具体的には以下の処理が行われていますが、これは、HTTPS テストサーバーの機能です。HTTP エントリポイントの機能ではありません。

  • キー (例: x-soracom-sim-id) に HTTP_ を追加する。
  • キーの小文字を大文字に変換する。
  • キーの -_ に置換する。
  • キーと値を = で連結する。

Beam の設定を無効化する

Beam では、リクエストを送信するとリクエスト単位で利用料金が発生します。Beam を使わない場合は、エントリポイントの設定を無効化するか、IoT SIM をグループから解除してください。