2016-08-19 117 views
-2

这个作品在我的系统上:转换卷曲蟒蛇要求

curl https://api.serverpilot.io/v1/servers -u KEY 

我试图将其转换到Python,并试图对这个代码的几个变化。

params = {"u" :KEY} 
# params = {"u" :json.dumps(KEY)} 

restUrl = "https://api.serverpilot.io/v1/servers" 
response = requests.get(restUrl, data=params, headers=headers) 
parsed = json.loads(response.content) 
print params 
print response 
print json.dumps(parsed, indent=4, sort_keys=True) 
+1

您是否检查了“man curl”手册? '-u'为验证指定一个*用户名和密码*。它当然与查询参数发送到服务器无关。 –

+0

请注意,您可以直接使用'response.json()'加载JSON响应。这里不需要使用'json'模块。 –

+0

感谢您的帮助。这现在适用于:response = requests.get(restUrl,auth =(CLIENTTID,APIKEY)) – user1256378

回答

1

如果您检查卷曲的文件,你会看到-u指定用户。 http://linux.die.net/man/1/curl

您可以使用curl的详细选项来打印输出的请求。

如果您签出请求文档,您会发现它通过auth关键字参数支持不同的auth方法。 http://docs.python-requests.org/en/master/user/authentication/

实质上,您的用户名(或密钥代码)不应该是GET参数,它是HTTP请求的不同部分。

+0

Thanks response = requests.get(restUrl,auth =(CLIENTTID,APIKEY)) works – user1256378

-1

如果你的响应头确实是'application/json;字符集= UTF8' (或其它字符集),

assert response.headers['content-type'] == 'application/json; charset=utf8' 

你可以使用:

parsed = response.json() 
+1

这至多是一条评论;这不是OP询问的问题。 –