Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python每次都请求NewsAPI重新发送401_Python_Python Requests - Fatal编程技术网

Python每次都请求NewsAPI重新发送401

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,

我试图在python程序中使用,但由于某种原因,无论如何都无法得到200响应。我对requests库非常不熟悉,因此可能我没有做正确的事情,但我的代码是这样的:

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”头发送,但就我所知,这是唯一一个。