1

私自身のテスト目的で、CakePHP を使用して Web サービスを構築しました。

ここで、実際の Android デバイスを使用して Web サービス (@localhost) に接続します。最初の試行で、テスト ページを読み込むことができました。次に、Apache サーバーをオフにしてテストし、使用できないことを確認しました。テストが完了したら、Apache を再起動しました。しかし、それ以来、私の Android デバイスは私のページを読み込めません (Web ページは利用できません)。Web サービス フォルダーにダイジェスト認証があり、最初の試行では正しく実行されました...

これまでに行ったことは次のとおり
です。 1.実際の Android デバイス (エミュレーターではない) を使用してローカルホスト ( http://192.168.xxx.xxx ) に接続しました。
2. ダイジェスト認証がポップアップします。
3. ユーザー名とパスワードを入力します。接続に成功しました。
4. Apache サーバーをオフにします。
5. ローカルホストへの接続を再試行します (もちろん、「Web ページが利用できません」)。
6. Apache サーバーを再起動します。
7. ローカルホストへの接続を再試行します (リロードは機能しません...)

最初は、キャッシュの問題か何かではないかと思いました。そのため、Android の Web ブラウザのすべてのキャッシュとフォーム データをクリアし、再度リロードを試みました。しかし、再びリロードすることはありません。その後、別のPCから接続を試みたところ、正常に接続されました。Android デバイスからのみ、ページのリロードに失敗します。

この問題を解決するためにできることはありますか? エミュレーターは仕事には遅すぎるため、デバッグ目的で実際の Android デバイスを使用する必要があります。私は周りを検索していくつかの同様の質問を見つけましたが、私の場合、サービスに正常に接続したことがあるため、どれも役に立ちませんでした。一度だけページのリロードに失敗し、二度とロードしません...

前もって感謝します。

*編集* Androidエミュレーターを使用して同じシーケンスを試したところ、正常にリロードされました...実際のデバイス用に別のブラウザー(Dolphin Browser)を試しても、ページを読み込めません...

4

1 に答える 1

1

Web サーバーがループバック インターフェイスでリッスンしているが、ネットワーク インターフェイスではリッスンしていない可能性があります。これは、ヒットし127.0.0.1localhost機能するが、機能し192.168.xxx.xxxないことを意味します (ローカルホスト、LAN、または WAN から)。

サーバーがリッスンしているインターフェイスを特定するには、ここで、リッスン ポートについて通知するコマンドを探します(私は を使用しlsof -Pan -i tcp -i udpました)。次に、リストでサーバー プロセスを探します。lsofコマンドの場合、ポート 8888 に対して次のようなものが表示される場合TCP *:8888 (LISTEN)、サーバーはすべてのインターフェイスでリッスンしています。しかし、代わりに次のようなものが表示TCP [::127.0.0.1]:8888 (LISTEN)された場合は、問題を特定しています!

問題を解決するための次のステップは、サーバーの実行構成をセットアップして、すべてのインターフェースをリッスンすることです。私は CakePHP について何も知りませんが、IP アドレスを指定できる場合は、試してみてください0.0.0.0。通常、リスニング ポートを指定できる場所の近くでこれを行うことができます。したがって、次のような構成がある場合:

--port 8888

次に、試すことができます:

--port 8888 --address 0.0.0.0

于 2013-05-24T20:23:15.227 に答える