使用python访问受Token保护的API中的数据

时间:2015-04-30 20:29:49

标签: python web-services api http curl

我一直在尝试使用python从API获取数据 - 我可以手动访问,如下所示

curl --location --compressed --header “Authorization: Bearer [ACCESS_TOKEN]” [STREAM_URL]

我如何在python中使用它 - 我已经阅读过使用requests但是如何在python中处理Access_Token部分的示例

任何帮助都会受到赞赏吗?

此致 VB

2 个答案:

答案 0 :(得分:0)

只需像在curl示例中那样定义标题。但在这种情况下,它是一个词典。假设你想使用requests,你会做这样的事情:

import requests

url = [STREAM_URL]
headers = {"Authorization": "Bearer [ACCESS TOKEN]"}
r = requests.get(url, headers=headers)
print(r.text)

答案 1 :(得分:0)

使用什么没有什么不同。 urllib附带python,如果你不想下载额外的包,请使用urllib。

正如OP在curl命令中提到--compressed,我们应该这样做以获取gzip压缩内容:

编辑ars回答:   

import sys
if sys.version_info.major == 3:
  import urllib.request as urllib2
else:
  import urllib2

from StringIO import StringIO
import gzip

request = urllib2.Request('http://example.com/')
request.add_header('Accept-encoding', 'gzip')
request.add_header('Authorization', 'Bearer [ACCESS_TOKEN]')
response = urllib2.urlopen(request)
if response.info().get('Content-Encoding') == 'gzip':
    buf = StringIO( response.read())
    f = gzip.GzipFile(fileobj=buf)
    data = f.read()

Does python urllib2 automatically uncompress gzip data fetched from webpage?