我试图在python程序中使用新闻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)这是可行的,但我仍然想知道如何在将来正确地使用请求包。
发布于 2017-07-17 15:19:27
根据提供的“工作”链接,它需要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.https://stackoverflow.com/questions/45147705
复制相似问题