NetworkSecurityConfig: Конфигурация безопасности сети не указана, используется платформа по умолчанию - PullRequest
0 голосов
/ 31 декабря 2018

Я пытаюсь подключиться к любому из этих мест и получить данные JSON: -

https://content.guardianapis.com/search?q=debate&tag=politics/politics&from-date=2014-01-01&api-key=test
https://content.guardianapis.com/search?q=debates&api-key=test
https://content.guardianapis.com/search?api-key=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx

Все три я могу получить через браузер, но когда я пытаюсь получить доступ к ним через AndroidПриложение Я получаю следующие ошибки: -

NetworkSecurityConfig: No Network Security Config specified, using platform default
Error response code: 400

Я добавил это в manifest.xml: -

<uses-permission android:name="android.permission.INTERNET"/>

Я также добавил это в manifest.xml: -

android:networkSecurityConfig="@xml/network_security_config"

И создал файл res / xml / network_security_config.xml, который содержит: -

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config>
        <domain includeSubdomains="true">content.guardianapis.com</domain>>
    </domain-config>

, который изменяет ошибку на: -

D/NetworkSecurityConfig: Using Network Security Config from resource network_security_config debugBuild: true
Error response code: 400

Я знаю, что она отсутствует: -

<trust-anchors>
    <certificates src="@raw/my_ca"/>
</trust-anchors>

но я понятия не имею, где или что будет сертификат или если он нужен.

Не совсем уверен, что происходит, любая помощь будет оценена.

ДОПОЛНИТЕЛЬНО: - Я могу нормально подключиться и получить JSON с этого URL: -

https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&eventtype=earthquake&orderby=time&minmag=6&limit=10

Все, что я получаю, это: -

No Network Security Config specified, using platform default

Купить неошибка 400 и получает 200 вместо.Так что это заставляет меня думать, что происходит что-то странное, но я не уверен, где.

Ответы [ 2 ]

0 голосов
/ 31 декабря 2018

Попробуйте эти решения

Решение 1 )

Добавьте следующий атрибут в тег <application в AndroidManifest.xml:

android:usesCleartextTraffic="true"

Решение 2 )

Добавьте android:networkSecurityConfig="@xml/network_security_config" к тегу <application в app/src/main/AndroidManifest.xml:

<application
        android:name=".ApplicationClass"
        android:allowBackup="true"
        android:hardwareAccelerated="false"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:networkSecurityConfig="@xml/network_security_config"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

С соответствующим network_security_config.xml в app/src/main/res/xml/:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

enter image description here

См. Этот ответ для получения дополнительной информации: Download Manger notработает в Android Pie 9.0 (Xiaomi mi A2)

0 голосов
/ 31 декабря 2018

Отредактированный ответ Удалите <domain includeSubdomains="true">secure.example.com</domain> из кода.

Используйте только:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

И это будет работать для любого URL или IP.

Попробуйте установить cleartextTrafficPermitted=false

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
       <domain includeSubdomains="true">secure.example.com</domain>
    </domain-config>
</network-security-config>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...