2016-05-23 4 views
1

Попытки использовать эту завиток команды, в Python:Преобразование завитка команды в Python pycurl или запрашивает

curl -k -X POST --data "action=login&username=user&password=pass" https://localhost:8443 

Я уже пробовал использовать pycurl как:

import pycurl 
c = pycurl.Curl() 
c.setopt(pycurl.URL, "https://localhost:8443") 
c.setopt(pycurl.POST, 1) 
#tried this too 
#c.setopt(pycurl.USERPWD, 'user:pass') 
c.setopt(c.HTTPHEADER,"action=login&username=user&password=pass") 
c.setopt(c.VERBOSE, True) 
c.perform() 

Я также попробовал в запросах :

import requests 


data = 'action=login&username=user&password=pass' 

requests.post('https://localhost:8443', data=data) 

но это не сработало. Не знаете, что мне не хватает, никаких предложений?

ответ

1
import requests 


data = {'action': 'login', 'username': 'user', 'password': 'pass'} 

requests.post('https://localhost:8443', data=data) 
+0

благодарит @Danny и @AyushShanker за ваши ответы! Я уже пробовал их раньше, и я продолжаю получать 'request.exceptions.SSLError: плохое рукопожатие: ошибка ([(« Подпрограммы SSL »,« SSL3_GET_SERVER_CERTIFICATE »,« проверка сертификата не удалась »)],)' любые идеи? – tkyass

+1

хорошо, вы используете https, но в вашем запросе curl вы использовали параметр -k, который в соответствии с curl --help: '-k, --insecure Разрешить подключения к сайтам SSL без сертификатов (H)' поэтому в этом случае до 100 % имитировать ваш вызов, вы должны добавить 'verify = False' (например:' request.post ('https: // localhost: 8443', data = data, verify = False) '), чтобы пропустить проверку сертификата ssl и не получить эту ошибку ... но тогда использование https было бы бессмысленным .... innit? :) – Danny

+0

Спасибо Дэнни, это сработало, я использовал 'data = {'action': 'login', 'username': 'user', 'password': 'pass'} request.post ('https: // localhost: 8443 ', data = data, verify = False) ' – tkyass

0

здесь запросы перевод

>>> data = 'action=login&username=user&password=pass' 
>>> requests.post('https://localhost:8443', data=data)