我正在玩数字海洋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()
答案 0 :(得分:1)
请注意使用:
$ pod install
您正在创建HTTP连接,并且DO正在使用HTTP重定向来要求您使用https://api.digitalocean.com/。
conn = httplib.HTTPConnection(hostname)
顺便说一句,请停止使用httplib,请使用requests。