2016-06-28 2 views
0

저는 cURL과 Requests가 새로 도입되어서 cURL 청원서를 Python의 Requests 명령으로 변환 할 수있는 방법에 의문이 생깁니다. 서버에 로그인을 수행하기 위해 아파치 스트라 토스 문서 Doc Page 보면 cURL 명령을 Python 요청 명령으로 변환

는 컬에서 당신이 사용

curl -X GET -H "Content-Type: application/json" -k -v -u admin:admin https://localhost:9443/api/session 

그리고 터미널에서 작동합니다. 이제 장고 웹 사이트에서 동일한 작업을 수행하고 컬 URL을 파이썬 코드로 변환하고 모듈 "요청"을 사용하여 사용자를 전달하고 청원서에 정보를 전달하는 방법을 알고 싶습니다.

headers = {'Content-Type':'application/json'} 
data = {} 
req = requests.post('https://localhost:9443/api/session', headers=headers, params=data) 

하지만 난이 (Requests Python Login Tutorial)

data = {"username":"admin","password":"admin"} 

을 시도하므로 사용자와 암호를 전달하는 방법을 알고하지 않습니다하지만 인증서를 얻을 : 지금이

코드는입니다 서버 오류 :

File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 385, in send raise SSLError(e) 
requests.exceptions.SSLError: [Errno 1] _ssl.c:510: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed 

그래서 사용자와 암호를 올바르게 전송하고 있습니까? 인증서 오류를 어떻게 해결할 수 있습니까? 거의 확실하게 유효한 인증서가없는

고마워, 그리고 당신은 당신의 로컬 호스트를 사용하는 관련

+0

로컬 호스트에 있습니다. SSL을 사용하는 것이 절대적으로 중요합니까? 'http : // localhost : 9443/api/session'을 시도하십시오. 파이썬 요청은 실제로 SSL을 다루는 것이 매우 원활하지만 로컬 호스트에 유효한 SSL 인증서가있을 것 같지 않습니다. –

+0

예, 문서 페이지의 모든 URL은 Https를 사용하며 Firefox의 로그인 페이지에 액세스 할 때 페이지를 보려면 보안 예외를 추가해야합니다. – Aker666

+0

선택할 수있는 답변이 두 개 있습니다. –

답변

2

SSL 인증을 사용하지 않도록 설정합니다.

from requests.auth import HTTPBasicAuth 

req = requests.post('https://localhost:9443/api/session', headers=headers, auth=HttpBasicAuth('admin', 'admin'), verify=False) 

자세한 내용은 requests docs을 참조하십시오.

파이썬 Resquest 코드는 다음과 같습니다 :

requests.get('https://localhost:9443/api/session', headers=headers, auth=HTTPBasicAuth('admin', 'admin'), verify=False) 

은 "PARAMS는"필요하지 않을의 현장

+0

예, @Sam 대답을 시도한 후에 발견했습니다. 하지만 어쨌든 고마워 :) – Aker666

2

. 테스트 목적으로

당신은 verify 플래그 turn off SSL cert verificationauth을 지정하여 basic authentication을 사용할 수 있습니다 (이 여전히 확인되지 인증서를 암호화)

req = requests.post('https://localhost:9443/api/session', headers=headers, params=data, verify=False) 
+0

'verify = False' Nice. –

+0

고마워, 나는이 깃발을 몰랐다! – Aker666

0

Requests Auth Doc Page에 찾고 @Sam 솔루션 후 나는 해결책을 찾아 냈다.

: 그리고

u'{"Success":{ "sessionId": "547D78FD4966DDBE21AEFDAECE909DEC"}}' 

은 사람을 도움이되기를 바랍니다!