LibGDX では、クロスプラットフォームでのネットワーク操作のためのクラスがいくつか用意されています。 これらのクラスはより一般的にはGdx.net (ソース)として知られています。
クラスの説明:
HttpRequests
の作成を手助けするクラスです。TCP クライアントを作成するには、以下の短いコードを使用します:
Socket socket = Gdx.net.newClientSocket(Protocol protocol, String host, int port, SocketHints hints);
TCP サーバを作成するには、以下を使用します:
ServerSocket server = Gdx.net.newServerSocket(Protocol protocol, int port, ServerSocketHints hints);
HTTP リクエストを送信するには、以下を使用します:
HttpRequestBuilder requestBuilder = new HttpRequestBuilder();
HttpRequest httpRequest = requestBuilder.newRequest().method(HttpMethods.GET).url("http://www.google.de").build();
Gdx.net.sendHttpRequest(httpRequest, httpResponseListener);
GET HTTP リクエストに引数を付けて送信するにはを、以下を使用します:
HttpRequestBuilder requestBuilder = new HttpRequestBuilder();
HttpRequest httpRequest = requestBuilder.newRequest().method(HttpMethods.GET).url("http://www.google.de").content("q=libgdx&example=example").build();
Gdx.net.sendHttpRequest(httpRequest, httpResponseListener);
システムブラウザを開くには以下を使用します:
Gdx.net.openURI(String URI)
異なるプラットフォーム上でネットワーク処理を行う場合は、いくつかの注意事項があります。
<uses-permission android:name="android.permission.INTERNET" />
POST
リクエストではContent-Type
ヘッダを設定するようにしてください。全てのバックエンドで同じ値が既定値になっている訳ではありません(根本的な実装上の違いのため)。
このヘッダで最もよく使用される値は application/x-www-form-urlencoded
です。; しかし、あなたが送信するデータのタイプに応じて異なる値が必要になるでしょう (application/xml
や application/json
のような)。以下も参照してください
モバイルデータのバッテリー効率に関する素晴らしい記事が こちらにあります。
Gdx.net クラスのソースコードはこちらにあります。