http_get()


Game Maker Language リファレンス > 組み込み関数 用途別 > 非同期関数 > http_get

http_get

指定のURLにGETメソッドでリクエストをします (※Free版では使用不可)

構文

http_get(url);
url
サーバーのURL文字列(GETメソッド)

戻り値

Real
レスポンスデータを格納するマップのID(ds_map)

説明

この関数を使うと、指定のURLにGETメソッドで接続します。これは非同期関数であるため、レスポンスが戻ってくるまでの間、GameMaker:Studioは処理をブロックすることはありません。レスポンスは非同期イベント"HTTP"で受け取ります。レスポンスはマップに文字列の形式で格納されます。
以下に接続の例を記述します。

http_get("http://www.YoYoGames.com/logon?username="+name);

"name"変数にサーバに渡すパラメータを指定し、URLに接続をしています。このように少ないパラメータであればGETメソッドで充分でしょう。
この関数の戻り値はds_mapのインデックス番号となります。リクエスト時点では空の状態です。コールバックイベント"HTTP"が発生した時点で、特殊な変数である"async_load"に"dictionary"形式で格納されます。その構造は以下のとおりです。

URL
リクエストを行い処理が完了したURL
result
レスポンスデータ(文字列)
http_status
HTTPステータスコード。(200:OK / 403:Forbidden / 404:Not Found / 500:Internal Server Error など)
id
コマンドにより返されたID。http_getを呼び出した時の戻り値と比較することでリクエストの判定をすることができます
status
エラー時には0より小さい値を返します

注意

あなたはプラウザのXSS保護を知っておかなければなりません。 ドメインへのリクエストやデータ取得により、空白の結果を返すことがあります。 詳細はクロスドメイン問題のセクションを確認して下さい


http_get関数は、任意のイベントから呼び出すことができ、非同期処理であるため、瞬時に結果が得られることもあれば、数秒かかることもあります。関数呼び出しは以下のように簡単に行えます。

get[0] = http_get("http://www.MacSweeneyGames.com/logon?username=" + name);

上記コードは変数"name"の値を指定のURLへリクエストします。結果は非同期イベントである"HTTP"で処理され、"get[0]"変数にds_map形式で値が格納されます。"HTTP"イベントでは以下のように記述します。

// リクエストしたときのIDと比較
if ds_map_find_value(async_load, "id") == get[0]
{
  // ステータスのチェック
  if ds_map_find_value(async_load, "status") >= 0
  {
    // レスポンスデータの取得
    r_str = ds_map_find_value(async_load, "result");
  }
  else
  {
    r_str = "null";
  }
}

上記コードはリクエスト時に取得できるds_mapのIDをチェックし、ステータスのチェックをしています。正しければレスポンスデータを"r_str"変数に格納しています。

関連

  • json_decode():指定のJSON形式の文字列をds_mapに格納します

Wiki内検索

#search(): You already view a search box

MENU

ドキュメント

GMLリファレンス

2ch

その他



最新の30件

2019-11-16 2019-11-14 2019-09-27 2019-07-28 2019-07-12 2018-11-17 2017-11-07 2017-10-26 2017-10-01 2017-05-13 2016-10-01 2017-01-22 2017-01-14 2016-12-25 2016-10-09 2016-09-21 2016-08-29 2016-06-21 2016-02-23 2016-02-10 2016-01-18 2015-10-30 2015-10-20 2015-06-23 2015-06-20 2015-06-19

人気の10件

今日の10件



これまでの訪問者: 989
今日の訪問者: 1
昨日の訪問者: 0
閲覧者: 2