Python每次都请求NewsAPI重新发送401
我试图在python程序中使用,但由于某种原因,无论如何都无法得到200响应。我对requests库非常不熟悉,因此可能我没有做正确的事情,但我的代码是这样的:Python每次都请求NewsAPI重新发送401,python,python-requests,Python,Python Requests,我试图在python程序中使用,但由于某种原因,无论如何都无法得到200响应。我对requests库非常不熟悉,因此可能我没有做正确的事情,但我的代码是这样的: api = XXXXXXXXXX def get_json_response(apiKey, resource='google-news', sortBy='latest'): url = 'https://newsapi.org/v1/articles' headers = { 'source': resource,
api = XXXXXXXXXX
def get_json_response(apiKey, resource='google-news', sortBy='latest'):
url = 'https://newsapi.org/v1/articles'
headers = { 'source': resource,
'apiKey': apiKey,
'sortBy': sortBy}
r = requests.get(url, headers=headers)
print(r.status_code)
get_json_response(api)
输出总是401。
但奇怪的是,如果我只是在浏览器中放入“”,它会给出正确的json响应,因此我使用请求的方式肯定有问题
有什么想法吗?提前谢谢
编辑:
这不是一个完美的解决方案,但我将线路切换到:
r = requests.get(url + '/?source=' + resource + '&sortBy=' + sortBy + '&apiKey=' + apiKey)
这是可行的,但我仍然想知道如何在将来正确使用requests包。根据提供的“工作”链接,它需要URL参数,而不是请求的标题,因此:
def get_json_response(apiKey, resource='google-news'):
url = 'https://newsapi.org/v1/articles/'
params = {'source': resource,
'apiKey': apiKey}
r = requests.get(url, params=params)
print(r.status_code)
# etc.
根据提供的“工作”链接,它需要URL参数,而不是请求的标题,因此:
def get_json_response(apiKey, resource='google-news'):
url = 'https://newsapi.org/v1/articles/'
params = {'source': resource,
'apiKey': apiKey}
r = requests.get(url, params=params)
print(r.status_code)
# etc.
刚刚注意到google news不允许按最新排序,但即使删除了,问题仍然存在。刚刚注意到google news不允许按最新排序,但即使删除了最新排序,问题仍然存在。实际上,您可以将API密钥作为“x-API-key”头发送,但就我所知,这是唯一一个。实际上,您可以将API密钥作为“x-API-key”头发送,但就我所知,这是唯一一个。