今回はインターネット上の特定URLに対してリクエストして、その結果のJsonを受けとるといった内容をやってみます。
今回はプラグインを使用します。使用するプラグインは以下にあるものを使わせていただきました。ありがとうございます!
プロジェクトを作成
さて、普通にプロジェクトを作成するのですが、その前に注意をする必要があります。今回使用するプラグインはブループリントのみしか使用しないのですが、プラグインのバイナリーが現時点での最新安定板であるUE4.6.1に対応していないのか、C++プロジェクトを作成してビルドさせてあげる必要があります。
ビルドを行うにはWindowsだとVisual Studioのインストールが必須になりますので、以下のリンクからダウンロードしてインストールまで行ってください。また現在のVisual StudioはExpressではなくて、Communityという特別なバージョンになっています。特別理由がなければ、Communityの方をインストールします。。
Visual Studioが使えるようになったら新規プロジェクト作成をして、C++プロジェクトの作成を行います。
もし、ここでC++プロジェクトを作らなくてもプロジェクトの".uproject"ファイルを右クリックして、"Generate Visual Studio project files"でC++プロジェクトを作成することができます。
これで、プロジェクトが準備できました。
当然ながら用意したプラグインをプロジェクトに配置する必要がありますので、プロジェクトの中に"Plugins"フォルダーを作って、そこにJson Queryプラグインの中身をまるごとコピーしておきます。プラグインに関しては以下の記事で色々紹介していますので、参考に。
UE4で使えるプラグインいろいろ紹介 - Let's Enjoy Unreal Engine
あとはVisual Studio側からF5なりでエディターを起動すると自動的にプラグインを認識します。
HTTPリクエストを行う
レベルブループリントなどで実装を行います。やることは非常に単純です。"Create JSON Data"のノードを使用して、Jsonデータを作成し、それを保存しておきます。あとは"Post JSON Request"でリクエストを投げるだけです。
今回はJsonをテストするために以下のWebサイトに対してリクエストを投げています。
実際に投げているのは、日時を取得するための専用のURLがあります。
今回はこの場所に対してリクエストします。もちろん、これだけではリクエストを投げて終わりという状態なので、ちゃんとリクエストに対してのコールバックを処理します。全体で見ると以下のようなブループリントになります。
これを実行してFキーを押してみると…
Keyに対応したJsonの内容が取得できていることがわかります。ちなみに時間は日本時間ではないので、実際の時間とは20時間ちょっとの差があるようです。
Jsonに入れる内容は自分で作成可能
当然ですが、リクエストに使用するJsonは自分で作成可能です。
AddするたびにURLに追加されて、Keyに対応するJsonデータが作成されます。最後にPostした時点のものが結果として出力されます。どのようなJson配列になっているかは、"Get String Field"や、"Get String Array Field"ノードを使って確認が可能です。