Rahul Ramakrishnan Ответов: 3

Загрузил приложение в play store, но сетевые вызовы не работают


Я загрузил приложение в play store. При запуске приложения отображается страница входа в систему, но веб-сервис, выполняющий вход в систему, не работает. Я протестировал приложение локально, и все работает нормально.
То, что могло бы быть, возможно, пошло не так.

Мой веб-сервис использует протокол http, поэтому я добавил network_config_xml_file следующим образом

<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">webservices.mydomain.com/vidyaMandir.svc</domain>
    </domain-config>
</network-security-config>


и добавил Это свойство в файл манифеста как
android:networkSecurityConfig="@xml/network_security_config"


Что я уже пробовал:

Запустил приложение в play store, но веб-сервис возвращает null

Richard MacCutchan

Любая из миллиона вещей могла пойти не так. Но здесь никто не мог догадаться без некоторых подробностей.

3 Ответов

Рейтинг:
2

Rahul Ramakrishnan

Я добавил следующий код в файл proguard-rules-pro

-keepclassmembers,allowobfuscation class * {
    @com.google.gson.annotations.SerializedName <fields>;
  }
-keep,allowobfuscation @interface com.google.gson.annotations.SerializedName


Теперь это работает


Рейтинг:
1

MadMyche

Скорее всего, у вас есть проблема с конфигурацией.

Если вы ожидаете больше помощи... вы действительно собираетесь рассказать нам больше.

Если бы это была моя проблема, я бы начал с попытки вызвать этот веб-сервис из браузера или с помощью такого инструмента, как SoapUI или Postman.

Если веб-сервис не работает, то исправление этого должно позаботиться и о вашем приложении.
Если веб-сервис работает, то вам нужно убедиться, что ваше приложение имеет правильный указатель на веб-сервис, а не на что-то в вашей домашней сети


Rahul Ramakrishnan

Веб-сервис прекрасно работает и в Postman, и в chrome. Он также работает в моем эмуляторе и локально в моем android-устройстве.

MadMyche

Где находится веб-сервис> В доме или размещенный в другом месте

Rahul Ramakrishnan

Внутренний

MadMyche

Попробуйте получить доступ к веб-сервису снаружи дома... я предполагаю, что он не является общедоступным

Rahul Ramakrishnan

он находится в открытом доступе

Рейтинг:
0

Richard Deeming

Цитата:
Мой веб-сервис использует протокол http ...
Это вполне вероятный виновник. Передача учетных данных Пользователя по незащищенному сетевому протоколу-крайне плохая идея, и она, скорее всего, будет заблокирована.

Обновите свой веб-сервис, чтобы вместо него использовать HTTPS. В зависимости от того, где и как он размещен, вы даже можете использовать бесплатный сертификат от Давайте зашифруем[^], так что это вам ничего не будет стоить.

NB: Если он размещен в компании, которая не позволяет вам использовать бесплатный сертификат, то вам следует перенести свой бизнес в другое место.