2016-08-19 141 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詢問的問題。 –