0

私は、ユーザーが賃貸住宅を探しているビジネスで働いています。これらは、当社のウェブサイトから見ることができます。

人々がスマートフォンで家を見つけるのに役立つ Android アプリケーションを作成しようとしています。モバイル アプリケーションが Web サーバー (PHP/MySQL *) からデータを取得し、要求を行うようにするにはどうすればよいですか?

これがWebサービスの定義ではないでしょうか。では、PHP と Android プラットフォーム バージョン 8 (2.2 Froyo) でサポートされている Web サービスは何ですか?

重要な要件が 1 つあります。それは、アプリケーションからの認証を要求することによって安全であることです。つまり、アプリケーションだけがデータにアクセスできるようにする必要があります。

* Python 2.6.6 がサポートされています。私は Python が大好きですが、Web サイトは 100% PHP で書かれているため、サーバー言語を混在させたくないのです。

4

2 に答える 2

2

モバイル アプリケーションが Web サーバー (PHP/MySQL *) からデータを取得し、要求を行うようにするにはどうすればよいですか?

Android では、古いバージョンのApache HTTP クライアントが利用可能です。そのため、アプリからサーバーへの HTTP リクエストを作成するために、その側がカバーされます。

HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet("https://www.myserver.com/webservice/xyz");
HttpResponse response = client.execute(request);

わずか 3 行のコードで、GET 要求を作成できます。

では、PHP と Android プラットフォーム バージョン 8 (2.2 Froyo) でサポートされている Web サービスは何ですか?

SOAP やその他の XML ベースのプロトコルなど、PHP で使用できるさまざまな Web サービス ライブラリがあります。XML は肥大化しているので、個人的にはそうはいきません。モバイル デバイス、制限された帯域幅、および高価なデータ プランを扱っているため、サーバーとクライアントの間で送信されるデータを小さく保ちたいと考えています。JSON は、XML のよりコンパクトな代替手段です。サーバーとクライアント間でデータを交換するための独自の「バイナリ」データ形式を作成することもできます。

Android 側では、選択した Web サービスに適した Java クライアント ライブラリを探すだけです。または、カスタム ソリューションを使用する場合は、自分でコーディングするだけです。

重要な要件が 1 つあります。

HTTPS を使用する

アプリケーションからの認証を要求することにより、つまり、アプリケーションのみがデータにアクセスできるようになります。

ユーザーのログインを扱っていない限り、これを確実に強制することはできません。ユーザーにログインを要求する場合は、OAuth を検討してください。

クライアント アプリにもサーバーにも、プレーン テキストのパスワードを保存しないでください。

アプリだけがその Web サービスにアクセスできるようにするだけの場合は、「クライアント シークレット」文字列などをアプリの HTTP 要求ヘッダーに追加できます。サーバーはその秘密の文字列が存在することを要求します。存在しない場合、アクセスは拒否されます。

ただし、これは、人々がその秘密を理解するためにあなたのアプリを見るのを止めるものではありません. ランダムに文字をごちゃまぜにするなど、その秘密の文字列を難読化することで、少し難しくすることができます。

また、メジャー アップデートごとにクライアント シークレットを定期的に変更することもできます。これには、ユーザー更新する必要があります。そうしないと、ユーザーはロックアウトされます。

于 2012-07-16T16:57:22.633 に答える
0

Android アプリケーション ( json-simpleなど) で JSON データについて PHP サーバーにクエリを実行する関数を実装し、サーバーで GET 要求を取得する方法を実装することを検討することをお勧めします ($_GET をインターパーティングしてからJSONを送り返すことも検討してください)。 )。

XML、プレーンテキスト、またはその他のものも使用できますが、JSON はおそらく最も小さく、最も迅速に実装できます。

于 2012-07-16T16:30:44.570 に答える