Я пытаюсь подключиться к php-MySQL, используя ниже код
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://127.0.0.1/mytable.php");
// HttpPost httppost = new HttpPost("http://localhost/mytable.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());
}
когда управление httpclient.execute(httppost);
на httpclient.execute(httppost);
он выдает исключение:
org.apache.http.conn.HttpHostConnectException: Connection to http://127.0.0.1 refused
Я также добавляю <uses-permission android:name="android.permission.INTERNET"/>
в файл AndroidManifest.xml.
Когда я тестирую свой php файл непосредственно из браузера, он отлично работает. Какие-либо предложения?
Из эмулятора, il вы хотите получить доступ к своему физическому компьютеру, вы должны использовать следующий IP-адрес:
10.0.2.2
Тот, который вы использовали, 127.0.0.1
, указывает на машину, внутри которой выполняется ваш код, то есть сам эмулятор.
Поскольку у вас нет HTTP-сервера, запущенного на вашем эмуляторе Android, ваше приложение не может подключиться к нему, что объясняет полученное сообщение об ошибке.
Для получения дополнительной информации вы должны прочитать следующий раздел руководства: Сетевое адресное пространство
127.0.0.1 - это localhost, текущее устройство. На вашем компьютере это относится к вашему компьютеру, но на устройстве или эмуляторе это относится к этому устройству.
См. Этот документ о том, как обращаться к локальному хосту вашего компьютера при работе в эмуляторе. Кроме того, вы можете изменить 127.0.0.1 на фактический IP-адрес вашего компьютера.
http://developer.android.com/resources/faq/commontasks.html#localhostalias