urllib3 lead maintainer here. I wasn't able to reproduce your bug, at least with the main development branch, when I passed `Accept` as part of the `headers` dict. If you could file an issue with a reproduction case, I'd definitely appreciate it.
http = urllib3.PoolManager()
r = http.request('GET', "https://oneom.tk/data/config", headers={'Accept': 'application/json', 'User-Agent' : "Mozilla/5.0"})
r.headers['Content-Type'] 'application/json'
r = http.request('GET', "https://oneom.tk/data/config", headers={'Accept': 'application/json'})
r.headers['Content-Type'] 'text/html; charset=UTF-8'
You can reproduce with curl with the following command:
curl -v 'https://oneom.tk/data/config' -H 'Accept: application/json' -H 'User-Agent:'
That'll nullify the default curl user agent and should produce the same results you were seeing with urllib3.When I was messing with it I could get it to work with curl and (eventually) urllib but urllib3 was no bueno until I tried to reproduce the problem and just copied the header with the User-Agent field from the urllib code.