提问者:小点点

如何使用Python验证和访问特定API


我试图用Python访问API,但到目前为止,我得到的最好结果是401响应(我没有经过身份验证)。

这是API:
https://opendata-api.stib-mivb.be/Files/1.0/Gtfs

这是我用来获得401响应的代码:

import requests
response = requests.get("https://opendata-api.stib-mivb.be/Files/1.0/Gtfs")
print (response.status_code)

我试图理解他们给出的代码示例,但无法得到它:

curl-k-xget--header“Accept:application/zip”--header“Authorization:Bearer b2ba6c7a35d667564ffa2765aec6ea07”-o/gtfs。拉链“https://opendata-api.stib-mivb.be/Files/1.0/Gtfs"

如何识别消费者密钥、消费者机密、我收到的访问令牌(他们不提供访问令牌机密)与Tweepy您还应该使用访问令牌机密。。。例如:

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

所以我被困在那里...

有什么帮助吗?

谢啦


共1个答案

匿名用户

这里的访问方式是承载令牌。你被提供了一个令牌,当你提出请求时,你会保密并回报,这就是它的全部。就像这样提出你的要求:

response = requests.get("https://opendata-api.stib-mivb.be/Files/1.0/Gtfs",
    headers = {'Authorization': 'Bearer {}'.format(access_token)})

他们返回的数据是一个大小合适的zip文件;我建议按照本答案中的示例将响应流式传输到文件。大概是这样的:

response = requests.get("https://opendata-api.stib-mivb.be/Files/1.0/Gtfs",
    headers = {'Authorization': 'Bearer {}'.format(access_token)},
    stream = True)
with open('gtfs.zip', 'w') as out:
    for chunk in response.iter_content(chunk_size=4096):
        out.write(chunk)