2013-08-09 13 views
16

Bir API izliyorum ve Kullanıcı Kimliği ve parolamın bir Base64 kimlik doğrulaması kullanmam gerekiyor. o zaman Daha sonra bir "Yetki Üstbilgi kodlanmış değerini sağlayın' demek ilerlerBase64 Kimlik Denetimi Python

'userid:password' 

örneği göstermektedir

'hem birleştirilmelidir ve sonra Base64 kodlanmış User ID ve Şifre gerek' "örneğin,'

': Yetki: TEMEL {Base64 kodlu değeri}'

Bunu bir python API isteğine nasıl yazarım?

z = requests.post(url, data=zdata) 

Teşekkür

cevap

21

Veriyi kodlamak ve aşağıdaki işlemleri yaparak çağrısı yapabilir:

import requests, base64 

usrPass = "userid:password" 
b64Val = base64.b64encode(usrPass) 
r=requests.post(api_URL, 
       headers={"Authorization": "Basic %s" % b64Val}, 
       data=payload) 

seni de "TEMEL" kelimesini eklemeyi ettik emin değilim Yetkilendirme alanı veya değil. API bağlantısını sağlarsanız daha açık olur.

+0

ör Bir imgeyi Imgur'a yüklemek için, Yetkilendirme başlığı şu şekildedir: Verilerden önce "Client-ID" anahtar kelimesi ile "Client-ID yourClientPublicKey". – Alfageme

+0

Burada yük nedir? – Dev

+0

@Dev – Alfageme

29

İstek kitaplığı Basic Auth support numarasına sahiptir ve sizin için otomatik olarak kodlayacaktır. Sen aşağıdakileri yazarak bu kodlamayı teyit edebilir

from requests.auth import HTTPBasicAuth 
r = requests.post(api_URL, auth=HTTPBasicAuth('user', 'pass'), data=payload) 

bir piton repl içinde aşağıdaki çalıştırarak bunu test edebilirsiniz.

r.request.headers['Authorization'] 

çıkışlar:

u'Basic c2RhZG1pbmlzdHJhdG9yOiFTRG0wMDY4' 
+0

burada yük nedir? – Dev