Как подключится к localhost ПК из Android-приложения?

348
16 марта 2017, 20:45

Код Android-клиента:

URL url = new URL("http://192.168.0.106:8080/RestApp2_war_exploded/rs/hello");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setConnectTimeout(5000);
Log.e("TAG", "metka 1");
urlConnection.connect();
Log.e("TAG", "metka 2");
  //здесь обрабтчик
catch (IOException e) {
   Log.e("TAG", "Io exc " + e);
}

Сервер на Java и возвращает обычную строку. В браузере работает.

До второй метки код так и не доходит. Лог:

03-15 17:59:18.122 23717-23934/com.ka.restapp1 E/TAG: metka 1

03-15 17:59:23.240 23717-23934/com.ka.restapp1 E/TAG: Io exc java.net.SocketTimeoutException: failed to connect to /192.168.0.106 (port 8080) after 5000ms

Тестирую на реальном аппарате. Правильно ли я указываю хост 192.168.0.106?

И еще маленький вопрос: то, что я сейчас делаю, и называется RESTful клиентом?

Answer 1

По описанному выше, нельзя точно сказать, Rest у Вас, или нет.

Выполняются ли у Вас основные принципы Rest:

  1. Явное использование HTTP-методов.
  2. Несохранение состояния.
  3. Предоставление URI, аналогичных структуре каталогов.
  4. Передача данных в XML, JavaScript Object Notation (JSON) или в обоих форматах?

Хорошая статья для ознакомления: https://www.ibm.com/developerworks/ru/library/ws-restfu/

READ ALSO
Внешняя БД и android-приложение

Внешняя БД и android-приложение

Как сделать внешнюю БД (которая будет висеть где-то на хостинге) и сделать возможность записывать/читать информацию с нее в android-приложенииЕсли...

386
Отправка письма в отдельном потоке Java EE Servlet

Отправка письма в отдельном потоке Java EE Servlet

Сделал отправку письма на E-MailОтправка сделана через Gmail, с авторизацией

367
Удаление из базы данных Sqlite

Удаление из базы данных Sqlite

Хочу удалить данные одной строки в БДПрограмма выдает следующую ошибку android

330