我正在尝试在python程序中使用News API,由于某种原因,无论如何我都无法获得200响应。我对请求库非常不熟悉,所以也许我做的不对,但这就是我的代码:
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。 但奇怪的是,如果我只是将“https://newsapi.org/v1/articles/?source=google-news&apiKey=XXXXXXXXX”放在浏览器中,它会给出正确的json响应,因此我使用请求的方式就不对了。
有什么想法吗?提前致谢
编辑: 不完全是一个优雅的解决方案,但我将线路切换到:
r = requests.get(url + '/?source=' + resource + '&sortBy=' + sortBy + '&apiKey=' + apiKey)
这很有效,但我仍然想知道未来如何正确使用请求包。
答案 0 :(得分:3)
根据提供的“工作”链接,它需要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.