我正在尝试连接到这些地方中的任何一个并获取 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。所以这让我觉得发生了一些奇怪的事情,但不确定在哪里。
原文由 Markus 发布,翻译遵循 CC BY-SA 4.0 许可协议
试试这些解决方案
将以下属性添加到 --- 中的
AndroidManifest.xml
<application
标签:添加
android:networkSecurityConfig="@xml/network_security_config"
到<application
标记app/src/main/AndroidManifest.xml
:在
network_security_config.xml
app/src/main/res/xml/
:有关详细信息,请参阅此答案: Download Manger not working in Android Pie 9.0 (Xiaomi mi A2)