Исключение тайм-аута (отправка данных с Android на страницу PHP) - PullRequest
2 голосов
/ 14 декабря 2011

Я пытаюсь отправить данные из приложения Android (с эмулятором) на веб-сервер (страница php) в настоящее время.Во-первых, я пробовал эту программу с эмулятором, и она успешно работала.После этого я попробовал эту программу с телефоном, но возникла исключительная ситуация:

-> IO Exception: Тайм-аут операции.

Одна часть моего кода:

HttpClient httpclient = new DefaultHttpClient();

HttpPost httppost = new HttpPost("http://192.168.1.33:90/takeDatas.php");
try {                   
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
    nameValuePairs.add(new BasicNameValuePair("enlem", latitude ));
    nameValuePairs.add(new BasicNameValuePair("boylam", longitude ));
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    httpclient.execute(httppost);

} catch (ClientProtocolException e) {
    Toast.makeText(ReportLocationActivity.this, "Client protokol exception ", Toast.LENGTH_LONG).show();
} catch (IOException e) {
    Toast.makeText(ReportLocationActivity.this, "IO exception "+e.getMessage(), Toast.LENGTH_LONG).show();
}

Надеюсь, ты мне поможешь.Заранее спасибо.

1 Ответ

1 голос
/ 14 декабря 2011

10.0.2.2 - это IP-адрес, который эмулятор приписывает хост-машине.

И вообще, 10.xxx является частью частного IP-блока .

* 1006.* То есть вы должны размещать сервер на той же машине, на которой запущен эмулятор?Это единственный способ увидеть, как он работает в эмуляторе.

В любом случае, вашему приложению нужен фактический IP-адрес вашего сервера, и если вы хотите, чтобы он работал вне вашей сети, вам понадобится ваш публичный IP ( найдите свой здесь ) и настройте переадресацию портов для порта 90, если у вас есть маршрутизатор. Этот сайт ужасно изобилует рекламой, но содержит обширную коллекцию инструкций, специфичных для маршрутизатора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...