I'm trying to connect to either of these places and get the JSON data:-
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
All three I can get to via the browser, but when I try to access them via an android app I get the following errors:-
NetworkSecurityConfig: No Network Security Config specified, using platform default
Error response code: 400
I've added this to manifest.xml:-
<uses-permission android:name="android.permission.INTERNET"/>
I also added this to the manifest.xml:-
android:networkSecurityConfig="@xml/network_security_config"
And created res/xml/network_security_config.xml, which contains:-
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config>
<domain includeSubdomains="true">content.guardianapis.com</domain>>
</domain-config>
Which changes the error to:-
D/NetworkSecurityConfig: Using Network Security Config from resource network_security_config debugBuild: true
Error response code: 400
I know it's missing:-
<trust-anchors>
<certificates src="@raw/my_ca"/>
</trust-anchors>
but I have no idea where or what the certificate would be or if it's needed.
Not really sure what is going on, any help would be appreciated.
IN ADDITION:- I am able to connect fine and get the JSON from this URL:-
https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&eventtype=earthquake&orderby=time&minmag=6&limit=10
All I get is this:-
No Network Security Config specified, using platform default
Buy not error 400 and gets through with a 200 instead. So it makes me think there is something weird going on, but not sure where.
Try these solutions
Solution 1)
Add the following attribute to the <application
tag in AndroidManifest.xml
:
android:usesCleartextTraffic="true"
Solution 2)
Add android:networkSecurityConfig="@xml/network_security_config"
to the <application
tag in 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">
With a corresponding network_security_config.xml
in app/src/main/res/xml/
:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
Refer this answer for more info: Download Manger not working in Android Pie 9.0 (Xiaomi mi A2)
Edited Answer
Remove <domain includeSubdomains="true">secure.example.com</domain>
from the code.
Use just:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
Try to set 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>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With