NetworkSecurityConfig:未使用平台默认值指定网络安全配置

时间:2018-12-31 07:24:25

标签: java android asp.net-web-api networking

我正在尝试连接到这些地方之一并获取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>

但是我不知道证书在哪里,在什么地方或者是否需要它。

不太确定发生了什么,将不胜感激。

另外:- 我可以很好地连接并从以下URL获取JSON:-

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。因此,这让我觉得有些奇怪的事情正在发生,但不确定在哪里。

3 个答案:

答案 0 :(得分:2)

修改后的答案 从代码中删除<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>

答案 1 :(得分:1)

尝试这些解决方案

  

解决方案1)

android:usesCleartextTraffic="true"

将此标签添加到manifest文件的应用程序标签中

  

解决方案2)

在应用程序标记中添加android:networkSecurityConfig="@xml/network_security_config"

<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

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

在res目录下创建xml,然后在xml文件夹中创建network_security_config.xml

请参阅此答案以获取更多信息 Files are not downloading on Android Pie 9.0 (Xiaomi mi A2) Using Download Manger

答案 2 :(得分:1)

我也面临同样的问题,并尝试了很多解决方案(添加配置等),但它们对我不起作用..我坐下来仔细检查我的代码,代码中有问题我'我写了访问节点。不是语法错误,是节点名称不匹配。