掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
iOS/Android上でRestAPIの実行が非常に遅い (ID:150144)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
インターネット上のDataSnapサーバへRestAPI(httpsではなくhttp)を発行する 下記のとおり簡単なサンプルプログラムをFMXで作成したのですが、 iOS及びAndroidの場合、RESTRequest.Executeを実行後、10KB程度のJSONデータを取得するのに 8秒もかかってしまいます。(NetHTTPRequest.Getでも同様) 同じサンプルプログラムでターゲットプラットフォームを Windowsに切り替えて実行すると1秒もかからず、取得できます。 Wi-Fiの問題ではないかと思い、「HTTPBot」というiOSアプリのRestAPIクライアントで 実行するとWindowsと同様1秒もかからず、取得できました。 Delphiのバージョンは最新の「Embarcadero® Delphi 11 バージョン 28.0.44500.8973」です。 ちなみに自社のホームページのURLで実行するとHTMLは47KB程度ですが 1秒程度で取得できました。 状況的にDataSnap側の問題ではないように思うのですが、 FMXのマルチデバイスアプリで何か通信の問題があるのでしょうか? <サンプルプログラム抜粋(URLは伏せてあります)> procedure TForm1.Button1Click(Sender: TObject); var RESTClient: TRESTClient; RESTRequest: TRESTRequest; RESTResponse: TRESTResponse; begin RESTClient := TRESTClient.Create(nil); RESTRequest := TRESTRequest.Create(nil); RESTResponse := TRESTResponse.Create(nil); RESTRequest.Client := RESTClient; RESTRequest.Response := RESTResponse; try RESTClient.BaseURL := 'http://xxx.xxx.xxx.xxx:8080/'; RESTClient.Params.AddHeader('Content-Type', 'application/json; charset=utf-8'); RESTClient.Params.AddHeader('ID', '1'); RESTClient.Params.AddHeader('Password', '1'); RESTRequest.Method := rmGET; RESTRequest.Resource := 'api/v1/test/datalist'; RESTRequest.Response := RESTResponse; RESTRequest.Execute; memo1.Lines.Add(RESTRequest.Response.JSONValue.ToString); finally RESTResponse.Free; RESTClient.Free; RESTRequest.Free; end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.