Модифицированная связь CLEARTEXT не включена для клиента - PullRequest
0 голосов
/ 28 февраля 2019

Я работаю с библиотекой Retrofit над моим проектом, но кажется, что Retrofit блокирует не https запросы.Я попытался добавить тег application в Manifest.xml

android:usesCleartextTraffic="true"

, но это не сработало, я также попробовал другое решение, добавив в res/xml файл безопасности:

<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">http://my subdomain/</domain>
    </domain-config>
</network-security-config>

и связать его в теге application в файле Manifest.xml:

android:networkSecurityConfig="@xml/network_security_config"

оба решения не сработали.Как я могу избежать этой ошибки?

Примечание: мой код работает нормально, когда я тестирую с запросом https, и для целей тестирования мы работаем в поддомене, который использует http.

Ответы [ 2 ]

0 голосов
/ 01 августа 2019

Вы можете включить URL-адреса без указания http:// для URL-адресов.Пример веб-сайта http://mywebsite.com и IP-адреса http://192.168.1.1, вы можете написать как ниже:

<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">mywebsite.com</domain>
        <domain includeSubdomains="true">192.168.1.1</domain>
    </domain-config>
</network-security-config>
0 голосов
/ 01 августа 2019

Только что возникла именно эта проблема, но я не уверен, что решение для вас будет таким же.Но в моем случае я использовал okhttp3 в качестве http-клиента, и при сборке своего клиента мне нужно было указать спецификации соединения следующим образом:

val specs = listOf(ConnectionSpec.CLEARTEXT, ConnectionSpec.MODERN_TLS)

client.connectionSpecs(specs)

Ранее я только настраивал MODERN_TLS, поэтому вЧтобы моя библиотека могла принимать http-соединения, мне пришлось добавить CLEARTEXT spec

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