HTTP POSTを使用するクラスを使用しています&データベースからのデータをphp/json経由で取得し、文字列に変換しています。HTTP POST接続でエラーが発生しました
LogCatに "Error in http connection android.os.NetworkOnMainThreadException"
が表示されています。エミュレータでこれをテストしており、正しいポートアドレスを使用しています。ポートがアプリケーションの他の部分(LocalhostからHTMLを読み込む)でうまく動作するので、私はこれを知っています。私がデスクトップブラウザでphpファイルを実行すると、正常に動作します。また、10.0.2.2 &のmySQLでは、ユーザがphpログインファイルで設定したパーミッションが正しく設定されていることも知っています。
私の質問は:誰もが同じ問題を横切って来たのですか?もしそうなら、問題が何であったか、他に何を探すべきかを考えましたか?
あなたの助けにThnx!
public void loadQuery(String p) {
String qO = getIntent().getStringExtra("QUERY_ORDER");
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
// http post
try {
HttpClient httpclient = new DefaultHttpClient();
// HttpPost httppost = new HttpPost("http://10.0.2.2/Andaero/php/" +
// p + qO + ".php");
//Hard coded the php link to make sure -->
HttpPost httppost = new HttpPost(
"http://10.0.2.2/Andaero/php/regulatory_list_ASC.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
} catch (Exception e) {
Log.e("log_tag", "Error in http connection " + e.toString());
}
// convert response to string
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8);
sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line = "0";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result = sb.toString();
} catch (Exception e) {
Log.e("log_tag", "Error converting result " + e.toString());
}
setListAdapter(new QueryAdapter(this, result));
}
のthnx。これを別のスレッドに配置する方法の例を示してください。 - 私はまだそれをやりました。 – CelticParser