提问者:小点点

NetworkSecurityConfig:未指定网络安全配置,使用平台默认错误响应代码:400


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

我已经将此添加到清单. xml:-

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

我还将此添加到清单. 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>

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

不太确定发生了什么,任何帮助都将不胜感激。

IN补充:-我能够很好地连接,并从这个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个答案

匿名用户

试试这些解决方案

解决方案1)

将以下属性添加到

android:usesCleartextTraffic="true"

解决方案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">

app/src/main/res/xml/中使用相应的network_security_config. xml

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

有关更多信息,请参阅此答案:下载Manger无法在Android Pie 9.0(小米mi A2)中运行

匿名用户

编辑答案删除

仅使用:

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

尝试设置cleartextTra的许可=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>

匿名用户

我也面临着同样的问题,尝试了许多解决方案(添加配置等),但它们不适合我…我坐下来仔细检查我的代码,我写的访问节点的代码有问题。不是语法错误,是节点名称不匹配。