我有一个自己的域,用于存储json文件(http://example.com/file.json)
。使用直接链接在浏览器中访问文件时,返回的json就很好。但是,在下面的python代码中使用相同的方法时,则http响应为 406 。有什么想法吗?
import requests
url = 'http://example.com/file.json'
r = requests.get(url, headers={"Accept":"text/html"})
print(r.status_code)
print(r.headers)
打印:
406
{'Server': 'nginx/1.14.1', 'Date': 'Sun, 12 May 2019 16:53:25 GMT', 'Content-Type': 'text/html; charset=iso-8859-1', 'Content-Length': '226', 'Connection': 'k
eep-alive'}
答案 0 :(得分:0)
通过使用其他User-Agent解决。默认的Python User-Agent 'python-requests/2.21.0'
可能已被托管公司阻止。
r = requests.get(url, headers={"User-Agent": "XY")
某些可能的代理人:List of User Agent strings
答案 1 :(得分:0)
您自己接受的答案很可能是不正确的。此错误表示 Accept
标头的值与响应的 Content-Type
不匹配。如果您发送 Accept: */*
,它会起作用(至少 406
不会返回)。