Android アプリで PHP スクリプトから JSON データをリクエストしようとしています。
携帯電話を直接接続し、「実際の」インターネット Web サーバーに直接アクセスすると、すべてがうまく機能します。ただし、エミュレータとローカルホスト(WAMPインストール)を使用するとまったく機能しません。ローカル Web サーバーでスクリプトを直接実行すると、期待どおりの結果が得られます。エミュレータを使用して同じマシンでスクリプトを呼び出している場合にのみ、問題が発生します。
これまでに試した組み合わせは次のとおりです(スクリプトはルートのサブディレクトリ「zz」にあります):
private static String url_all_venues = "http://10.0.2.2/zz/pullvenuesjson.php";
また
private static String url_all_venues = "http://10.0.2.2:80/zz/pullvenuesjson.php";
次の例外が発生します: E/JSON Parser(657): データ org.json.JSONException の解析中にエラーが発生しました: 値
私が次のことをしようとしているとき:
private static String url_all_venues = "http://10.0.2.2:8080/zz/pullvenuesjson.php";
コードは「永久に」実行され、約 5 分後にタイムアウト エラーが発生します。
ローカル Web サーバー / エミュレーターでアプリをテストできるように、それを修正する方法はありますか? 問題はローカルの Apache 構成にある可能性が最も高いのですが、よくわかりません…</p>
編集:
エラーを引き起こすと思われるコードの一部を次に示します。
DefaultHttpClient httpClient = new DefaultHttpClient();
String paramString = URLEncodedUtils.format(params, "utf-8");
url += "?" + paramString;
HttpGet httpGet = new HttpGet(url);
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
「url」は上記のものです。以下の私のコメントで述べたように、インターネット経由で「実際の」サーバーに直接アクセスしているときにコードが正常に機能するため、問題はローカルの WAMP Web サーバーが適切に応答していないことに起因しているように見えます (iow、変更する以外に何もしません)。 php スクリプトのインターネットアドレスへの URL)。奇妙なことに、スクリプトはローカルで実行しても正常に動作しますが、エミュレーターを介しては動作しません。