2016-08-19 3 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-страницу 'man curl'? '-u' указывает * имя пользователя и пароль * для аутентификации. Это, безусловно, не имеет никакого отношения к тому, какие параметры запроса отправляются на сервер. –

+0

Обратите внимание, что вы можете просто загрузить ответ JSON напрямую с помощью 'response.json()'. Не нужно использовать модуль 'json' здесь. –

+0

Спасибо за помощь. Теперь это работает с: response = request.get (restUrl, auth = (CLIENTID, APIKEY)) – user1256378

ответ

1

Если вы посмотрите документацию на локон, вы увидите, что -u указывает пользователя. http://linux.die.net/man/1/curl

Вы можете использовать подробные варианты завитка, чтобы получить распечатку сделанного запроса.

Если вы закажете документацию по запросам, вы увидите, что он поддерживает различные методы auth с помощью параметра ключевого слова auth. http://docs.python-requests.org/en/master/user/authentication/

По сути, ваше имя пользователя (или код ключа) не должно быть параметром GET, это другая часть HTTP-запроса.

+0

Спасибо response = request.get (restUrl, auth = (CLIENTID, APIKEY)) работы – user1256378

-1

Если вы отвечаете заголовком на самом деле 'application/json; набор символов = utf8' (или другой набор символов),

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

вы можете использовать:

parsed = response.json() 
+1

Это не более чем комментарий; это не то, о чем спрашивает ОП. –

Смежные вопросы