从digitalocean api请求时,httplib失败

时间:2017-01-10 04:27:34

标签: python digital-ocean

我正在玩数字海洋api,我希望能够发送HTTP请求并在python中获得响应。但是我不断获得301 Moved永久性。当我使用curl时,它可以正常工作。但是,在检查实际的HTTP标头时,看起来我发送的是同一个请求,但user-agent除外。谁能告诉我我做错了什么?

我使用的curl命令是

curl -v -X GET "https://api.digitalocean.com/v2/actions" \
  -H "Authorization: Bearer secret"

这是我的python代码。

import httplib

token = 'secret'
hostname = 'api.digitalocean.com'
conn = httplib.HTTPConnection(hostname)

conn.set_debuglevel(1)

conn.connect()
conn.putrequest('GET', '/v2/actions', skip_accept_encoding=True)
conn.putheader('Accept', '*/*')
conn.putheader('User-Agent', 'TestProgram')
conn.putheader('Authorization', 'Bearer ' + token)
conn.endheaders()
conn.send('')

response = conn.getresponse()

print response.read()
print response.getheaders()

conn.close()

1 个答案:

答案 0 :(得分:1)

请注意使用:

$ pod install

您正在创建HTTP连接,并且DO正在使用HTTP重定向来要求您使用https://api.digitalocean.com/

conn = httplib.HTTPConnection(hostname)

顺便说一句,请停止使用httplib,请使用requests