Я хочу подключиться к своей базе данных Azure с Android. Со стороны Android я использую JDBC:
Connection con = ConnectionJDBC.connectionClass();
String query = "SELECT * FROM mytable";
Statement stmt = con.createStatement();
stmt.executeUpdate(query);
Со стороны Azure мой сервер обычно работает, а в настройках брандмауэра разрешены IP-адреса от 0.0.0.0 до 255.255.255.255. Все остальное без изменений.
Это также работает для большинства сетей WiFi, через которые я сделал запрос. Однако это не работает для WiFi моего университета (в частности, ETH Zurich), con будет просто нулевым. Кто-нибудь знает, в чем может быть проблема? Я думаю, что это связано с конфигурацией сервера Azure, но я не знаю, что еще я мог бы изменить.
См. JDBC против веб-службы для Android, предложенный Моррисоном Чангом: JDBC не следует использовать и иногда он блокируется. Вместо этого создайте службу мобильных приложений в Azure (имя будет изменено на службу веб-приложений) и подключитесь к этому серверу, как предлагается здесь: https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-android-get-started.
Связано: JDBC против веб-службы для Android. Точно так же любая университетская/корпоративная сеть должна иметь брандмауэры, чтобы блокировать множество вещей, если это специально не разрешено.