0

クライアントがアプリケーションからサーバーに認証し、認証後にクライアントがサーバーとメッセージを送受信するAndroidアプリケーションを構築しようとしています。私のサーバーはGoogleAppEngineサーバーなので、通信にHttpリクエスト(doPost)を使用しています。

私がすでに完了した目標は次のとおり
です。1。クライアントプロファイルを作成します。
2.サーバープロファイルデータに送信します。3 。サーバーにプロファイル
を保存します
。4。サーバーのdbから登録済みプロファイルにログインします
。5。適切な認証のためにクライアントokメッセージを送信します。

今私の質問は、この接続をどのように維持するかです。
1、2分後にはhttp接続であるため、接続がタイムアウトになるかどうかはわかりません。そして、認証を再度行うことには、データベースへのアクセスが再び含まれることが間違っているように思われます。これを行うための適切な方法は何ですか。コード例または優れたチュートリアルをいただければ幸いです。
ありがとう。

4

3 に答える 3

2

ログインに成功したクライアントごとにサーバー上にHTTPセッションを作成し、クライアントからの後続のすべてのリクエストに対して、セッションが既に作成されていることを確認できます。さらに、セッションでクライアント固有のデータを永続化できます。リンクhttp://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/Servlet-Tutorial-Session-Tracking.htmlを参照してください。次に、サーバー側の web.xml でタイムアウトを指定できます。これが役立つことを願っています

于 2012-04-12T17:22:53.937 に答える
1

HTTP はセッションベースのプロトコルではありません。開いている接続を維持することは、純粋に効率の改善です。リクエストを相互に関連付ける固有の方法は提供されないため、そのように使用しないでください。

代わりに、Ganesh が提案するように、Cookie ベースのセッションを使用してください。

于 2012-04-13T04:50:29.893 に答える
0

解決策は、Https を使用することです。クライアントとサーバー間の通信チャネルを保護するための困難なメカニズムがあります。

OAuth プロトコルのようにすることもできます。適切な OAuth では、サーバーは、クライアントがすべての要求で再送信する必要があるトークンをクライアントに提供します。

OAuth 用の Android ライブラリがあり、サーバーに低コストで統合できるものがあることは間違いありません。

単なるアイデアです。私は実際にはウェブの専門家ではありません:)

于 2012-04-12T16:51:26.907 に答える